eastoriented / library
A blueprint to setup a develoment environment for library with docker
Installs: 671
Dependents: 4
Suggesters: 0
Security: 0
Stars: 2
Watchers: 3
Forks: 0
Open Issues: 0
Language:Makefile
Type:project
pkg:composer/eastoriented/library
This package is auto-updated.
Last update: 2025-10-10 17:10:58 UTC
README
The objective of eastoriented/library is to provide a PHP development environment to develop classes using docker.
It provide some default git files as .gitignore, a skeleton for README.md, a MIT licence file, a bin directory which contains scripts to use php, composer, docker-compose and atoum using docker.
Moreover, it setup a test environment using atoum, and it allow the user to switch PHP version easily and update vendor accordingly.
And finally, it provide a Makefile to execute tests, update vendor, manage version, regenerate autoload and so on.
Features
- Install with one line command;
- Setup a PHP development environment using docker, so it is totally independant from software installed on the workstation;
- Allow the user to swith PHP version "on the fly" (support PHP 7.1, 7.2, 7.3, 7.4 and 8 out of the box) and automaticaly update
vendordirectory accordingly; - Can tag version automaticaly according to previous version using semver;
- Setup a test environment using atoum;
- Provide configuration file for various CI (currently Github Action, Travis-CI and Gitlab CI);
- Setup a pre-commit hook to run unit tests;
- Provide docker wrapper for
composer,php,atoumanddocker-composein thebindirectory; - Allow the user to make easily releases according to current commit or tag;
- Define configuration to transparently use SSH keys with
composerin a docker context; - Provide support for
.lvimrcfile used by VIM pluginlocalvimrc; - Initialize a git repository;
- Provide default
.gitattributesand.gitognorefiles; - Provide default MIT licence file;
- Provide default README.md;
- Provide default VERSION file;
- Works on OSX and Linux;
- Support custom PHP images out of the box;
- Easy to update;
- Use
composercache directory.
Requirements
Requirements to use eastoriented/library are:
Installation
Execute the following command in a terminal:
wget -O - https://raw.githubusercontent.com/eastoriented/library/master/install.sh | sh
At end of process, you obtains an arborescence which contains all files needed to develop a PHP class:
By default, a github action workflow will be defined, but if you want a .gitlab-ci.yml, just do:
wget -O - https://raw.githubusercontent.com/eastoriented/library/master/install.sh | env WITH_GITLAB=true sh
Travis-CI is also supported:
wget -O - https://raw.githubusercontent.com/eastoriented/library/master/install.sh | env WITH_TRAVIS=true sh
If you use Github Action, you must define COVERALLS_REPO_TOKEN as a repository secret.
If you use vim and localvimrc, you can do:
wget -O - https://raw.githubusercontent.com/eastoriented/library/master/install.sh | env WITH_VIM=true sh
In this case, you must edit ./.lvimrc to define PHP namespace, see contents of .lvimrc for more informations.
And if you want that composer has SSH access on some repositories using your SSH credentials, just do:
wget -O - https://raw.githubusercontent.com/eastoriented/library/master/install.sh | env WITH_SSH=true sh
It's possible to get docker-compose.yml and basic Dockerfiles to build custome PHP images (add extensions, etc):
wget -O - https://raw.githubusercontent.com/eastoriented/library/master/install.sh | env WITH_PHP_DOCKERFILES=true sh
And last but not least, it is possible to mix all WITH_* variables:
wget -O - https://raw.githubusercontent.com/eastoriented/library/master/install.sh | env WITH_VIM=true WITH_SSH=true WITH_TRAVIS=true sh
Update
To retrive the last version, just do make vendor/update and commit all updated files in your git repository.
How to use it?
Just do make help in a terminal.
Houston, We've got a problem!
In case of problem, try to reinstall in debug mode:
wget -O - https://raw.githubusercontent.com/eastoriented/library/master/install.sh | env WITH_DEBUG=true sh | tee install.log
After that, open an issue and provide contents of file install.log
Tips
The command eval $(make session) add the bin directory to your path for your current shell session, so you can do php -v and bin/php will be called transparently.