Coder Social home page Coder Social logo

pickle's Introduction

pickle - PHP Extension installer SensioLabsInsight

Pickle installs PHP extensions easily on all platforms.

Code Climate Scrutinizer Code Quality Code Coverage Build Status

Installation

Grab the latest phar at https://github.com/FriendsOfPHP/pickle/releases/latest

wget https://github.com/FriendsOfPHP/pickle/releases/latest/download/pickle.phar

and run using

$ php pickle.phar

or add the execute flag

$ chmod +x pickle.phar

then run as:

$ pickle.phar info apcu

You can also rename the phar to "pickle"

$ mv pickle.phar pickle

so it can be called using pickle only.

And finally you can add it to your path or copy it in /usr/local/bin or your favorite binary directory.

On windows, use

$ php pickle.phar

or create a .bat containing:

@echo OFF
setlocal DISABLEDELAYEDEXPANSION
c:\path\to\php.exe "c:\path\to\pickle.phar" %*

If someone would be kind enough to write an installer script, we would be eternally thankful :)

Introduction

Pickle is a new PHP extension installer. It is based on Composer and the plan is to get Composer to fully support it. See composer/composer#2898 (comment) for the Composer part of the discussions.

Pickle fully supports existing extensions in http://pecl.php.net, running the following will install the latest available version of the memcache extension:

$ pickle install memcache

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 and works with multiple protocols (git or http(s) URLs).

For developers, it drastically reduces the release work. Extension meta information is not duplicated anymore. Configuration options, files to package etc. are automatically fetched from the sources and the respective files are updated during the release process. There is no risk anymore of forgetting to update the version here or there, or to neglect to include a file.

Installation From Sources

While the phar usage is recommended, one is indeed able to use it from git.

Clone this repository and install the dependencies with Composer:

$ composer install

If you like to create your own phar from the pickle sources, you will need to install Box (http://box-project.github.io/box2/). 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

Usage is pretty straightforward. For example, to install the memcache extension run the following command:

$ bin/pickle install memcache

If you need to install a specific version of an extension, you may do so:

$ bin/pickle install [email protected]

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.

Contributing

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

Support is available via the issue tracker in the Github project page or via IRC, EFNet, channel #pickle.

Running tests

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

Behat tests also test the phar, generate it prior to run the full test as described here (composer install --no-dev mode).

Pickle is covered using 4 Behat tests suites:

  • pickle runs tests against pickle's sources
  • pickle_phar runs tests against pickle's Phar which you have to manually build
  • pecl tests PECL extensions conversion with pickle's sources
  • phar_pecl tests PECL extensions conversion with pickle's Phar

pickle's People

Contributors

weltling avatar pierrejoye avatar jubianchi avatar hywan avatar pborreli avatar seldaek avatar keradus avatar cmb69 avatar harikt avatar mcfedr avatar shin1x1 avatar tomasvotruba avatar teohhanhui avatar stevelacey avatar vstokarev avatar romainneutron avatar mbrodala avatar staabm avatar adhocore avatar ivan1986 avatar grahamcampbell avatar fabpot avatar firehed avatar duncan3dc avatar stof avatar pierstoval avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.