khs1994 / pickle
PHP 扩展安装器,支持 pecl 包或直接从源树安装
Requires
- php: >=5.4
- ext-dom: *
- ext-json: *
- ext-mbstring: *
- ext-openssl: *
- ext-simplexml: *
- ext-zip: *
- ext-zlib: *
- composer/composer: ^1.9.1
- justinrainbow/json-schema: ^3.0 || ^4.0 || ^5.0
- padraic/phar-updater: ~1.0@dev
- symfony/console: ~2.5
- symfony/finder: ~2.5
Requires (Dev)
- atoum/atoum: ~2.1
- atoum/praspel-extension: ~0.1
- atoum/visibility-extension: ~1.0
- behat/behat: ~3.0
- symfony/process: ~2.5
Conflicts
README
Pickle 可以在所有平台上轻松安装 PHP 扩展。
比较上游
待办事项
路径参数
- 支持传入多个路径
$ pickle install xdebug yaml curl
- pecl 名称(yaml yaml-beta yaml-x.y.z)
- git 网址(https://github.com/xdebug/xdebug)
- 本地目录(/tmp/yaml)
.
├── 6efa6058386c5a7af3e8f944c716fe27.tar
├── package.xml
└── yaml-2.0.4
转换为 composer.json
{ "name": "yaml", "type": "extension", "license": [ "MIT" ], "authors": [ { "name": "Bryan Davis", "email": "bd808@bd808.com" } ], "description": "YAML-1.1 parser and emitter", "extra": { "configure-options": { "with-yaml": { "default": "autodetect", "prompt": "Please provide the prefix of libyaml installation" } } } }
简介
Pickle 是一个新的 PHP 扩展安装器。它基于 Composer,计划让 Composer 完全支持它。有关 Composer 的讨论部分,请参阅 composer/composer#2898 (comment)。
Pickle 完全支持 http://pecl.php.net 中的现有扩展,运行以下命令将安装 memcache 扩展的最新可用版本
$ bin/pickle install memcache
Windows 完全支持,安装二进制文件或从源代码安装(工作正在进行中,并且假设您已经设置了有效的工作环境)。
Pickle 的理念是简化开发者和最终用户的生活。
对于最终用户,变化不大,只是 Pickle 基于现代概念,并支持多种协议(git 或 http(s) URL)。
对于开发者,它极大地减少了发布工作。扩展元信息不再重复。配置选项、要打包的文件等自动从源获取,并在发布过程中更新相应的文件。不再有忘记更新版本或忽略包含文件的风险。
安装
克隆此存储库,并使用 Composer 安装依赖项
$ composer install
也提供了一个 phar,但可能已过时。
如果您想从 pickle 源创建自己的 phar,您需要安装 Box (http://box-project.github.io/box2/)。然后克隆存储库并运行以下命令
$ cd pickle
$ composer install --no-dev --optimize-autoloader
$ php -d phar.readonly=0 box.phar build
用法
用法很简单。例如,要安装 memcache 扩展,请运行以下命令
$ bin/pickle install memcache
您也可以从扩展目录使用 pickle,以下命令
$ cd myext
$ bin/pickle install
使用以下命令获取命令列表
$ bin/pickle list
要获取给定命令的扩展帮助,请使用
$ bin/pickle help install
要转换一个包(基于 package.xml 当前 PECL 安装程序),请使用
$ bin/pickle convert /home/pierre/myext/
或从扩展源目录运行它。
贡献
分叉项目,创建功能分支并向我们发送拉取请求。
为了确保一致的代码库,您应该确保代码遵循 PSR-1 和 PSR-2 编码标准。
为了避免 CS 问题,您应该使用 php-cs-fixer
$ php-cs-fixer fix src/
支持
支持通过Github项目页面中的问题跟踪器或在IRC, EFNet,频道 #pickle
中获取。
运行测试
单元测试使用atoum编写。运行composer install
时,您将获得atoum以及其他依赖项。要运行测试,您需要运行以下命令
$ vendor/bin/atoum
# To run tests in a loop, ideal to do TDD
$ vendor/bin/atoum --loop
还有一些Behat测试。运行composer install
时,您将获得Behat以及其他依赖项。要运行测试,您需要运行以下命令
$ vendor/bin/behat
# To choose the test suite you want to run
$ vendor/bin/behat -s pickle
Pickle使用了4个Behat测试套件
pickle
在pickle的源代码上运行测试pickle_phar
在您手动构建的pickle的Phar上运行测试pecl
测试PECL扩展与pickle的源代码的转换phar_pecl
测试PECL扩展与pickle的Phar的转换