pecm / pickling
PECL 和 PEAR 的 REST API 客户端
dev-main
2024-04-24 13:37 UTC
Requires
- php: ^8.1
- psr-discovery/http-client-implementations: ^1.2
- psr-discovery/http-factory-implementations: ^1.1
- psr/http-client: ^1.0
- psr/http-client-implementation: ^1.0
- psr/http-factory: ^1.0
- psr/http-factory-implementation: ^1.0
- psr/http-message: ^1.0
- psr/http-message-implementation: ^1.0
Requires (Dev)
- infection/infection: ^0.28
- nyholm/psr7: ^1.3
- php-parallel-lint/php-parallel-lint: ^1.3
- phpstan/phpstan: ^1.10
- phpunit/phpunit: ^11.1
- psr-mock/http-client-implementation: ^1.0
- psy/psysh: ^0.12
- roave/security-advisories: dev-latest
- squizlabs/php_codesniffer: ^3.6
Suggests
- nyholm/psr7: A fast PHP7 implementation of PSR-7
- php-http/socket-client: Socket client for PHP-HTTP
This package is auto-updated.
Last update: 2024-08-24 14:19:37 UTC
README
Pickling 是一个简单但功能强大的客户端,用于访问 PHP 扩展社区库 和 PHP 扩展与应用程序仓库 的 REST API。
安装
在核心上,Pickling 通过 HTTPlug Discovery 与许多 HTTP 客户端无缝协作。
换句话说,它需要至少以下实现中的一个包
将 Pickling 添加到 composer
composer require pecm/pickling
对于 HTTP 客户端的一般建议,使用 php-http/socket-client 和 nyholm/psr7
composer require php-http/socket-client nyholm/psr7
使用方法
有关以下简单示例之外的更多使用示例,请参阅 examples/ 文件夹。
工厂实例化
// pecl client with standard options $peclClient = Pickling\Factory::createPecl(); // pear client with standard options $pearClient = Pickling\Factory::createPear();
自定义实例化
// pecl client $peclClient = new Pickling\Client( // a class that implements Pickling\Channel\ChannelInterface new Pickling\Channel\Pecl(), // a class that implements Psr\Http\Client\ClientInterface new Http\Client\Socket\Client(), // a class that implements Psr\Http\Message\RequestFactoryInterface new Nyholm\Psr7\Factory\Psr17Factory(), // a class that implements Psr\Http\Message\StreamFactoryInterface new Nyholm\Psr7\Factory\Psr17Factory() ); // pear client $pearClient = new Pickling\Client( // a class that implements Pickling\Channel\ChannelInterface new Pickling\Channel\Pear(), // a class that implements Psr\Http\Client\ClientInterface new Http\Client\Socket\Client(), // a class that implements Psr\Http\Message\RequestFactoryInterface new Nyholm\Psr7\Factory\Psr17Factory(), // a class that implements Psr\Http\Message\StreamFactoryInterface new Nyholm\Psr7\Factory\Psr17Factory() );
客户端
获取包列表
$peclClient->getPackageList(); Pickling\Resource\PackageList Object ( [channel:Pickling\Resource\PackageList:private] => "pecl.php.net" [list:Pickling\Resource\PackageList:private] => Array ( [0] => "ahocorasick" // ... [408] => "zstd" ) )
包
获取包发布列表
$peclClient->with('amqp')->getReleaseList(); Pickling\Resource\Package\ReleaseList Object ( [packageName:Pickling\Resource\Package\ReleaseList:private] => "amqp" [channel:Pickling\Resource\Package\ReleaseList:private] => "pecl.php.net" [list:Pickling\Resource\Package\ReleaseList:private] => Array ( [0] => Pickling\Resource\Package\Release\Version Object ( [number:Pickling\Resource\Package\Release\Version:private] => "1.10.2" [stability:Pickling\Resource\Package\Release\Version:private] => "stable" ) // ... [41] => Pickling\Resource\Package\Release\Version Object ( [number:Pickling\Resource\Package\Release\Version:private] => "0.1.0" [stability:Pickling\Resource\Package\Release\Version:private] => "beta" ) ) )
获取包最新发布
$peclClient->with('amqp')->getLatestVersion(); "1.10.2"
获取包信息
$peclClient->with('amqp')->getInfo(); Pickling\Resource\Package\Info Object ( [packageName:Pickling\Resource\Package\Info:private] => "amqp" [channel:Pickling\Resource\Package\Info:private] => "pecl.php.net" [category:Pickling\Resource\Package\Info:private] => "Networking" [license:Pickling\Resource\Package\Info:private] => "PHP License" [licenseUri:Pickling\Resource\Package\Info:private] => "" [summary:Pickling\Resource\Package\Info:private] => "Communicate with any AMQP compliant server" [description:Pickling\Resource\Package\Info:private] => "This extension can communicate with any AMQP spec 0-9-1 compatible server, such as RabbitMQ, OpenAMQP and Qpid, giving you the ability to create and delete exchanges and queues, as well as publish to any exchange and consume from any queue." [packageReleasesLocation:Pickling\Resource\Package\Info:private] => "" [parentPackage:Pickling\Resource\Package\Info:private] => "" [packageReplaceBy:Pickling\Resource\Package\Info:private] => "" [channelReplaceBy:Pickling\Resource\Package\Info:private] => "" )
包发布
获取发布信息
$peclClient->with('amqp')->at('1.10.2')->getInfo(); Pickling\Resource\Package\Release\Info Object ( [packageName:Pickling\Resource\Package\Release\Info:private] => "amqp" [channel:Pickling\Resource\Package\Release\Info:private] => "pecl.php.net" [version:Pickling\Resource\Package\Release\Info:private] => "1.10.2" [stability:Pickling\Resource\Package\Release\Info:private] => "stable" [license:Pickling\Resource\Package\Release\Info:private] => "PHP License" [releasingMaintainer:Pickling\Resource\Package\Release\Info:private] => "lstrojny" [summary:Pickling\Resource\Package\Release\Info:private] => "Communicate with any AMQP compliant server" [description:Pickling\Resource\Package\Release\Info:private] => "This extension can communicate with any AMQP spec 0-9-1 compatible server, such as RabbitMQ, OpenAMQP and Qpid, giving you the ability to create and delete exchanges and queues, as well as publish to any exchange and consume from any queue." [releaseDate:Pickling\Resource\Package\Release\Info:private] => "2020-04-05 15:41:28" [releaseNotes:Pickling\Resource\Package\Release\Info:private] => "- Windows build: avoid variable lengths arrays (Christoph M. Becker) (https://github.com/pdezwart/php-amqp/issues/368) For a complete list of changes see: https://github.com/pdezwart/php-amqp/compare/v1.10.1...v1.10.2" [releaseSize:Pickling\Resource\Package\Release\Info:private] => 107350 [downloadUri:Pickling\Resource\Package\Release\Info:private] => "https://pecl.php.net/get/amqp-1.10.2" [packageLink:Pickling\Resource\Package\Release\Info:private] => "" )
许可证
本库使用 MIT 许可证 许可。