Pickle installs PHP extensions easily on all platforms.
Pickle is a new PHP extension installer. It is based on Composer and the plan is to get Composer fully support it. See composer/composer#2898 (comment) for the Composer part of the discussions.
Pickle fully supports existing extension in http://pecl.php.net, running:
$ bin/pickle install memcache
will install the latest version available of the memcache extension.
Windows is fully supported, to install binaries or from the sources (work in progress and given that you have a working build environment in place).
The concept behind Pickle is to ease the life of both developers and end users.
For end users, nothing changes much except that Pickle is based on modern concepts, works with multiple protocols (git or http(s) URLs).
For developers it drastically reduce the release work. Extension meta information are not duplicated anymore. Configure options, files to package etc. are automatically fetched from the sources and the respective files updated during the release process. There is no risk anymore to forget to update the version here or there, or to forget to include a file.
Clone this repository and install dependencies with Composer:
$ composer install
Or clone this repository, then run:
$ cd pickle
$ composer install
A phar is also available at http://www.pierrejoye.com/pickle/pickle.phar
If you like to create your own phar from the pickle sources, you will need to install Box (http://box-project.org/). Then clone the repository and run the following commands:
$ cd pickle
$ composer install --no-dev --optimize-autoloader
$ php -d phar.readonly=0 ..\box.phar build
Usage is pretty straightforward. For example, to install the memcache extension run the following command:
$ bin/pickle install memcache
You can also use pickle from your extension directory, the following command:
$ cd myext
$ bin/pickle install
A list of the commands is available using:
$ bin/pickle list
To get extended help for a given command, use:
$ bin/pickle help install
To convert a package (based on package.xml current PECL installer), use:
$ bin/pickle convert /home/pierre/myext/
Or run it from the extension source directory.
Fork the project, create a feature branch and send us a pull request.
To ensure a consistent code base, you should make sure the code follows the PSR-1 and PSR-2 coding standards.
To avoid CS issues, you should use php-cs-fixer:
$ php-cs-fixer fix src/
Support is available via the issue
tracker in the Github project page
or via IRC, EFNet, channel #pickle
.
Unit tests are written using atoum.
You will get atoum, among other dependencies, when running composer install
.
To run tests, you will need to run the following command:
$ vendor/bin/atoum
# To run tests in a loop, ideal to do TDD
$ vendor/bin/atoum --loop
There are also some Behat tests.
You will get Behat, among other dependencies, when running composer install
.
To run tests, you will need to run the following command:
$ vendor/bin/behat
# To choose the test suite you want to run
$ vendor/bin/behat -s pickle
Pickle is covered using 4 Behat tests suites:
pickle
runs tests against pickle's sourcespickle_phar
runs tests against pickle's Phar which you have to manually buildpecl
tests PECL extensions conversion with pickle's sourcesphar_pecl
tests PECL extensions conversion with pickle's Phar