itkg / consumer
Itkg 消费者库
2.0.0
2016-08-09 11:24 UTC
Requires
- php: >=5.3.3
- fkooman/guzzle-bearer-auth-plugin: 0.2.*
- fkooman/oauth-client: 0.5.*
- guzzle/guzzle: ~3
- itkg/core: ~1
- jms/serializer: *
- symfony/options-resolver: ~2
Requires (Dev)
- phpunit/phpunit: 3.7.*
This package is not auto-updated.
Last update: 2024-09-20 21:41:53 UTC
README
特性
- REST & Soap 消费者库
- Web服务缓存
- 日志记录
- OAuth 管理
安装
通过 Composer 安装
如果你使用 composer,将库作为依赖项添加到你的应用的 composer.json 中
"require": { "itkg/consumer": "dev-master" }
用法
REST WS 简单示例
$service = new \Itkg\Consumer\Service\Service( $eventDispatcher, new Itkg\Consumer\Client\RestClient(array( 'timeout' => 10 )), array( 'identifier' => 'my test' ) ); $response = $service ->sendRequest(\Symfony\Component\HttpFoundation\Request::create('http://URL/OF/MY/WEBSERVICE.json')) ->getResponse();
配置
日志
- 创建一个新的日志记录器实例
$service = new \Itkg\Consumer\Service\Service( $eventDispatcher, new Itkg\Consumer\Client\RestClient(array( 'timeout' => 10 )), array( 'identifier' => 'my test', 'logger' => new \Monolog\Logger('my_logger', array(new \Monolog\Handler\StreamHandler('/tmp/test'))), ) );
- 将日志记录器监听器添加到你的事件调度器
$eventDispatcher->addSubscriber(new \Itkg\Consumer\Listener\LoggerListener());
序列化
- 将反序列化监听器添加到你的事件调度器(使用 JMS 序列化器构建器创建序列化器)
$eventDispatcher->addSubscriber( new \Itkg\Consumer\Listener\DeserializerListener(JMS\Serializer\SerializerBuilder::create()->build()) );
- 定义 response_type & response_format
$service = new \Itkg\Consumer\Service\Service( $eventDispatcher, new Itkg\Consumer\Client\RestClient(array( 'timeout' => 10 )), array( 'identifier' => 'my test', 'reponse_format' => 'xml, 'response_type' => 'My\Class ) );
- 以这种方式获取反序列化内容
$object = $service->getResponse()->getDeserializedContent();
缓存
- 将缓存监听器添加到你的事件调度器
$eventDispatcher->addSubscriber( new \Itkg\Consumer\Listener\CacheListener($eventDispatcher) );
- 将缓存适配器添加到你的服务中(请参阅: https://github.com/itkg/core 以获取适配器列表)
$service = new \Itkg\Consumer\Service\Service( $eventDispatcher, new Itkg\Consumer\Client\RestClient(array( 'timeout' => 10 )), array( 'identifier' => 'my test', 'cache_adapter' => new \Itkg\Core\Cache\Adapter\Registry(), 'cache_ttl => 10000 ) );
- 你可以通过定义 'cache_serializer' & 'cache_deserializer' 选项来定义序列化和反序列化方法