{"id":13497777,"url":"https://github.com/FriendsOfPHP/pickle","last_synced_at":"2025-03-28T22:31:50.282Z","repository":{"id":433822,"uuid":"20719020","full_name":"FriendsOfPHP/pickle","owner":"FriendsOfPHP","description":"PHP Extension installer","archived":false,"fork":false,"pushed_at":"2023-09-29T20:54:12.000Z","size":5473,"stargazers_count":1649,"open_issues_count":40,"forks_count":89,"subscribers_count":54,"default_branch":"master","last_synced_at":"2025-03-16T05:54:30.448Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/FriendsOfPHP.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2014-06-11T09:04:51.000Z","updated_at":"2025-03-15T20:59:04.000Z","dependencies_parsed_at":"2024-05-05T06:43:55.925Z","dependency_job_id":null,"html_url":"https://github.com/FriendsOfPHP/pickle","commit_stats":{"total_commits":635,"total_committers":36,"mean_commits":17.63888888888889,"dds":0.6188976377952755,"last_synced_commit":"93d76e03b7beb80c22846d2533db12ddfcae57ce"},"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FriendsOfPHP%2Fpickle","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FriendsOfPHP%2Fpickle/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FriendsOfPHP%2Fpickle/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FriendsOfPHP%2Fpickle/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FriendsOfPHP","download_url":"https://codeload.github.com/FriendsOfPHP/pickle/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245066675,"owners_count":20555427,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-31T20:00:39.436Z","updated_at":"2025-03-28T22:31:49.793Z","avatar_url":"https://github.com/FriendsOfPHP.png","language":"PHP","funding_links":[],"categories":["Table of Contents","依赖管理","PHP","Dependency Management","目录","依赖管理 Dependency Management","依赖管理( Dependency Management )","PHP 扩展","Ecosystem"],"sub_categories":["Dependency Management","依赖关系管理 dependency-management","PRC"],"readme":"pickle - PHP Extension installer [![SensioLabsInsight](https://insight.sensiolabs.com/projects/7e153d04-79be-47e6-b2ee-60cdc2665dd5/small.png)](https://insight.sensiolabs.com/projects/7e153d04-79be-47e6-b2ee-60cdc2665dd5)\n================================\n\nPickle installs PHP extensions easily on all platforms.\n\n[![Code Climate](https://codeclimate.com/github/FriendsOfPHP/pickle.svg)](https://codeclimate.com/github/FriendsOfPHP/pickle)\n[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/FriendsOfPHP/pickle/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/FriendsOfPHP/pickle/?branch=master)\n[![Code Coverage](https://scrutinizer-ci.com/g/FriendsOfPHP/pickle/badges/coverage.png?b=master)](https://scrutinizer-ci.com/g/FriendsOfPHP/pickle/?branch=master)\n[![Build Status](https://github.com/FriendsOfPHP/pickle/workflows/Tests/badge.svg?branch=master)](https://github.com/FriendsOfPHP/pickle/actions?query=workflow%3ATests)\n\nInstallation\n------------\nGrab the latest phar at https://github.com/FriendsOfPHP/pickle/releases/latest \n```sh\nwget https://github.com/FriendsOfPHP/pickle/releases/latest/download/pickle.phar\n```\n\nand run using\n```sh\n$ php pickle.phar\n```\nor add the execute flag\n```sh\n$ chmod +x pickle.phar\n```\nthen run as:\n```sh\n$ pickle.phar info apcu\n```\nYou can also rename the phar to \"pickle\"\n```sh\n$ mv pickle.phar pickle\n```\nso it can be called using pickle only.\n\nAnd finally you can add it to your path or copy it in /usr/local/bin or your favorite binary directory.\n\nOn windows, use\n```sh\n$ php pickle.phar\n```\nor create a .bat containing:\n```\n@echo OFF\nsetlocal DISABLEDELAYEDEXPANSION\nc:\\path\\to\\php.exe \"c:\\path\\to\\pickle.phar\" %*\n```\n\nIf someone would be kind enough to write an installer script, we would be eternally thankful :)\n\nIntroduction\n------------\n\nPickle is a new PHP extension installer. It is based on Composer and the plan is to get Composer to fully support it. See https://github.com/composer/composer/pull/2898#issuecomment-48439196 for the Composer part of the discussions.\n\nPickle fully supports existing extensions in http://pecl.php.net, running the following will install the latest available version of the memcache extension:\n\n```sh\n$ pickle install memcache\n```\n\nWindows is fully supported, to install binaries or from the sources (work in progress and given that you have a working build environment in place).\n\nThe concept behind Pickle is to ease the life of both developers and end users.\n\nFor end users, nothing changes much except that Pickle is based on modern concepts and works with multiple protocols (git or http(s) URLs).\n\nFor 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.\n\nInstallation From Sources\n-------------------------\n\nWhile the phar usage is recommended, one is indeed able to use it from git.\n\nClone this repository and install the dependencies with\n[Composer](http://getcomposer.org/):\n\n```sh\n$ composer install\n```\nIf 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:\n\n```sh\n$ cd pickle\n$ composer install --no-dev --optimize-autoloader\n$ php -d phar.readonly=0 box.phar build\n```\n\nUsage\n-----\n\nUsage is pretty straightforward. For example, to install the memcache extension run the following command:\n\n```sh\n$ bin/pickle install memcache\n```\n\nIf you need to install a specific version of an extension, you may do so:\n```sh\n$ bin/pickle install redis@5.3.2\n```\n\nYou can also use pickle from your extension directory, the following command:\n\n```sh\n$ cd myext\n$ bin/pickle install\n```\n\nA list of the commands is available using:\n\n```sh\n$ bin/pickle list\n```\n\nTo get extended help for a given command, use:\n\n```sh\n$ bin/pickle help install\n```\n\nTo convert a package (based on package.xml current PECL installer), use:\n\n```sh\n$ bin/pickle convert /home/pierre/myext/\n```\n\nOr run it from the extension source directory.\n\nContributing\n------------\n\nFork the project, create a feature branch and send us a pull request.\n\nTo ensure a consistent code base, you should make sure the code follows\nthe [PSR-1](http://www.php-fig.org/psr/psr-1/) and\n[PSR-2](http://www.php-fig.org/psr/psr-2/) coding standards.\n\nTo check CS issues, you can use the `cs-check` composer command:\n\n```sh\n$ composer run cs-check\n```\n\nTo automatically fix CS issues, you can use the `cs-fix` composer command:\n\n```sh\n$ composer run cs-fix\n```\n\nSupport\n-------\n\nSupport is available via the [issue\ntracker](https://github.com/FriendsOfPHP/pickle/issues) in the Github project page\nor via [IRC, EFNet, channel `#pickle`](http://chat.efnet.org/).\n\nRunning tests\n-------------\n\nYou should run the tests by setting the `PICKLE_PECL_TESTSERVER` environment variable to `yes` (or `true` or `1`).\nThis implies that test are executed using a well-defined environment instead of using a live web server.\n\n```sh\n# On Unix-like systems\nexport PICKLE_PECL_TESTSERVER=yes\n# On Windows systems\nset PICKLE_PECL_TESTSERVER=yes\n```\n\nUnit tests are written using [atoum](https://github.com/atoum/atoum).\nYou will get atoum, among other dependencies, when running `composer install`.\nTo run tests, you will need to run the following command:\n\n```sh\n$ vendor/bin/atoum\n\n# To run tests in a loop, ideal to do TDD\n$ vendor/bin/atoum --loop\n```\n\nThere are also some [Behat](https://github.com/behat/behat) tests.\nYou will get Behat, among other dependencies, when running `composer install`.\nTo run tests, you will need to run the following command:\n\n```sh\n$ vendor/bin/behat\n\n# To choose the test suite you want to run\n$ vendor/bin/behat -s pickle\n```\nBehat tests also test the phar, generate it prior to run the full test as described here (composer install --no-dev mode).\n\nPickle is covered using 4 Behat tests suites:\n\n* `pickle` runs tests against pickle's sources\n* `pickle_phar` runs tests against pickle's Phar which you have to manually\n  build\n* `pecl` tests PECL extensions conversion with pickle's sources\n* `phar_pecl` tests PECL extensions conversion with pickle's Phar\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FFriendsOfPHP%2Fpickle","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FFriendsOfPHP%2Fpickle","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FFriendsOfPHP%2Fpickle/lists"}