v0.2.1
2017-04-06 10:25 UTC
Requires (Dev)
- phpunit/phpunit: ~5.6
This package is not auto-updated.
Last update: 2022-02-01 13:02:30 UTC
README
⚠ 由于HTTPlug更完整且具有相同功能,自HTTPlug以来,本库的开发已停止。
这个PHP库允许您以规范的方式连接到您的Web服务,支持遵循PSR-3和PSR-6的日志和缓存。
安装
使用Composer进行安装
composer require dldl/webservice
使用方法
以下是一个简单示例,说明如何使用这个库
<?php namespace MyApp\WebService; use dLdL\WebService\WebServiceInterface; use dLdL\WebService\ConnectorInterface; use dLdL\WebService\ParserInterface; use dLdL\WebService\Exception\WebServiceException; use dLdL\WebService\Http\Request; class FacebookWebService implements WebServiceInterface { private $connector; private $parser; private $host; public function __construct(ConnectorInterface $connector, ParserInterface $parser, $host) { $this->connector = $connector; $this->parser = $parser; $this->host = $host; } public function getConnector() { return $this->connector; } public function getPosts($facebookUsername) { try { $this->getConnector()->connect($this->host); } catch (WebServiceException $e) { return []; } $request = new Request($facebookUsername . '/feed'); $this->getConnector()->getCache()->getConfig()->add($request, 60*60*24); try { $postData = $this->getConnector()->sendRequest($request); } catch (WebServiceException $e) { return []; } $this->getConnector()->disconnect(); return $this->parser->parse($postData); } }
当然,您可以在捕获块中执行特定操作。
主要思想是将Web服务请求分为三个部分
- 连接器,负责连接到Web服务,并从预定义请求中抓取和/或发送原始数据
- 解析器,负责将原始数据转换为业务对象
- Web服务,负责检查业务条件调用服务,同时也负责将调用委托给连接器和解析器
这允许将数据检索的方式与数据使用的方式分离。它可以很容易地缓存、记录、添加代理等扩展,并可以在任何时候更改连接器的类型(例如,从SOAP迁移到REST Web服务)。
连接器必须实现ConnectorInterface
。最简单的方法是扩展AbstractConnector
类,该类提供了开箱即用的日志和缓存。连接器可以使用任何技术,如cURL
、Guzzle
、Soap
或任何特定库,但必须独立于它处理的数据。
贡献
每个功能都必须经过测试和文档记录。要贡献
- 克隆存储库
- 使用composer安装依赖项:
composer install
- 使用PHPUnit运行测试:
./vendor/bin/phpunit