redirectionio / proxy-sdk
此包已被弃用且不再维护。没有建议的替代包。
redirection.io 代理的 PHP 公共代码
v0.4.0
2019-11-07 07:38 UTC
Requires
- php: >=5.6
- psr/log: ^1.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.10
- monolog/monolog: ^1.24
- symfony/phpunit-bridge: ^4.1
- symfony/process: ^3.4
README
[已弃用]:此库已弃用,将不再维护。它不与redirection.io 代理当前版本兼容,而只与旧 1.x 分支兼容。我们建议您迁移并使用推荐的集成之一。
redirection.io 是一个用于跟踪 HTTP 错误和设置有用 HTTP 重定向的工具。它监听您的网站 HTTP 流量,并记录每个 HTTP 错误,以便您可以检查项目的重定向规则是否有效应用。
快速演示(下面有详细信息)
$client = new RedirectionIO\Client\Sdk\Client($projectKey, $connections); $request = new RedirectionIO\Client\Sdk\HttpMessage\Request( $_SERVER['HTTP_HOST'], $_SERVER['REQUEST_URI'], $_SERVER['HTTP_USER_AGENT'], $_SERVER['HTTP_REFERER'] ); $response = $client->request(new RedirectionIO\Client\Sdk\Command\MatchWithResponseCommand($request)); // There are no redirection for this Request if (null === $response) { $response = '...'; // Handle your request with your application } $client->request(new RedirectionIO\Client\Sdk\Command\LogCommand($request, $response)); // Finally, Returns your response
要求
- Composer
- PHP 5.5+
安装
要在项目中使用 redirection.io,请将其添加到您的 composer.json 文件中
$ composer require redirectionio/proxy-sdk
用法
实例化客户端
开始之前,您需要实例化一个新的客户端。
use RedirectionIO\Client\Sdk\Client; $client = new Client(string $projectKey, array $connections, int $timeout = 10000, bool $debug = false, LoggerInterface $logger = null);
参数
$projectKey
项目密钥(可在 redirection.io 控制台中找到)$projectKey = 'szio2389-bfdz-51e8-8468-02dcop129501:ep6a4805-eo6z-dzo6-aeb0-8c1lbmo40242';
$connections
连接到代理的连接参数数组$connections = [ 'connection_tcp' => 'tcp://127.0.0.1:10301', 'connection_unix' => 'unix:///var/run/redirectionio_agent.sock', ];
$timeout
连接/请求的超时时间(微秒)$debug
启用或禁用调试模式。在调试模式下,如果发生错误,会抛出异常,否则会静默处理所有错误;\Psr\Log\LoggerInterface $logger
日志记录器。
检查是否存在重定向规则
检查请求 URI 是否匹配代理中的重定向规则。如果是,则返回一个 RedirectResponse
,否则返回 null
。
use RedirectionIO\Client\Sdk\Client; use RedirectionIO\Client\Sdk\HttpMessage\Request; use RedirectionIO\Client\Sdk\Command\MatchCommand; $client->request(new MatchWithResponseCommand(Request $request);
参数
\RedirectionIO\Client\Sdk\HttpMessage\Request $request
.
返回值
\RedirectionIO\Client\Sdk\HttpMessage\RedirectResponse $response
如果代理已找到当前请求 URI 的重定向规则;null
如果代理中没有为当前 URI 设置重定向规则。
检查旧代理(<1.4.0)中是否存在重定向规则
检查请求 URI 是否匹配代理中的重定向规则。如果是,则返回一个 RedirectResponse
,否则返回 null
。
如果规则应该针对响应状态码进行匹配,它也会返回 null。这主要是为了向后兼容,并避免旧代理处理它不应该处理的规则。
use RedirectionIO\Client\Sdk\Client; use RedirectionIO\Client\Sdk\HttpMessage\Request; use RedirectionIO\Client\Sdk\Command\MatchCommand; $client->request(new MatchCommand(Request $request);
参数
\RedirectionIO\Client\Sdk\HttpMessage\Request $request
.
返回值
\RedirectionIO\Client\Sdk\HttpMessage\RedirectResponse $response
如果代理已找到当前请求 URI 的重定向规则;null
如果代理中没有为当前 URI 设置重定向规则。
记录请求/响应对
允许您记录每个请求的请求/响应对。
use RedirectionIO\Client\Sdk\Client; use RedirectionIO\Client\Sdk\Command\LogCommand; use RedirectionIO\Client\Sdk\HttpMessage\Response; use RedirectionIO\Client\Sdk\HttpMessage\Request; $client->request(new LogCommand(Request $request, Response $response));
参数
\RedirectionIO\Client\Sdk\HttpMessage\Response $request
\RedirectionIO\Client\Sdk\HttpMessage\Request $response
返回值
bool
如果成功添加日志,则为true
,否则为false
贡献
我们负责所有新的PR。任何贡献都欢迎 :) 感谢。
安装
$ composer install
运行测试
$ composer test