expectedbehavior/php-docraptor

DocRaptor API 的官方 PHP 封装。

1.3.0 2015-08-26 16:05 UTC

This package is not auto-updated.

Last update: 2024-09-28 16:20:42 UTC


README

Build Status Scrutinizer Code Quality

#PHP-DocRaptor

PHP-DocRaptor 是一个简单易用的 DocRaptor.com API 封装。在使用此库之前,您需要注册一个 DocRaptor 账户,因为它需要一个有效的 API 密钥。

##依赖项 此封装需要 PHP 5.4 或更高版本。PHP 5.4 支持将在 EOL 时停止。我们强烈建议将您的项目迁移到 PHP 5.6。除此之外,只需要 PHP curl 扩展。

目前,此库仍然与 PHP 5.3 兼容,但我们不能保证未来版本的支持。

##安装

此库遵循 PSR-4 自动加载规范,您可以通过 composer 安装它。只需在您的 composer.json 文件中添加它。

"require": {
    "expectedbehavior/php-docraptor": "1.3.0"
}

然后运行 composer updatecomposer install

##使用

$docRaptor = new DocRaptor\ApiWrapper("YOUR_API_KEY_HERE"); // Or omit the API key and pass it in via setter
$docRaptor->setDocumentContent('<h1>Hello!</h1>')->setDocumentType('pdf')->setTest(true)->setName('output.pdf');
$file = $docRaptor->fetchDocument();

fetchDocument 默认返回文档内容。您可以选择向 fetchDocument 方法提供文件路径,并且封装器将尝试将返回值写入该文件路径。

###选项

####设置 Prince 特定选项 如果 API 文档中有记录,API 封装器具有设置 prince_options 的能力,其中列出了可用的键。

设置 prince 版本和 PDF 配置文件 的示例

$docRaptor = new DocRaptor\ApiWrapper("YOUR_API_KEY_HERE");
$docRaptor
    ->setDocumentContent('<h1>Hello!</h1>')
    ->setDocumentType('pdf')
    ->setTest(true)
    ->setName('output.pdf')
    ->setDocumentPrinceOptions(array(
        'version' => '10',
        'profile' => 'PDF/A-1b',
    ));
$file = $docRaptor->fetchDocument();

####异步 默认情况下,PHP-DocRaptor 以同步方式提交请求。但是,如果您正在处理大量文档,则可以提交异步文档请求。您可以通过传递参数到 setAsync 方法(true 表示异步,false 表示同步请求)来选择这样做。

$docRaptor->setAsync(true);

同步请求将返回文件内容,而异步请求将返回一个 JSON 响应。响应的示例可以在 API 文档 中找到。

####异步回调 URL 如果调用 setAsync(true) 并希望 DocRaptor 在异步作业完成时对您的系统进行 POST 请求,则可以通过 setCallbackUrl 设置回调 URL。

$docRaptor->setCallbackUrl('http://example.com/callback');

有关 POST 请求的详细信息,请参阅 API 文档

####HTTPS 或 HTTP 默认情况下,PHP-DocRaptor 通过 HTTPS 提交请求。您可以选择通过 HTTP 提交,通过传递参数到 setSecure 方法(true 表示 HTTPS,false 表示 HTTP)来选择这样做。

$docRaptor->setSecure(false);

注意!这并不安全,您基本上是在网络上广播您的 API 密钥。

隐私

默认情况下,此库将通过用户代理字符串将使用情况统计信息(API 封装器版本和 PHP 版本)报告给 DocRaptor 服务。您可以通过向 ApiWrapper 构造函数或 HttpClient 构造函数提供配置对象来禁用此功能。

$config     = new DocRaptor\Config(false);
$httpClient = new DocRaptor\HttpClient($config);
$docRaptor  = new DocRaptor\ApiWrapper("YOUR_API_KEY_HERE", $httpClient, $config);
// or
$config    = new DocRaptor\Config(false);
$docRaptor = new DocRaptor\ApiWrapper("YOUR_API_KEY_HERE", null, $config); // will use HttpClient by default

备用 HTTP 实现

由于我们在 ApiWrapper 中注入了一个 HttpTransferInterface 接口,因此您可以选择注入提供的 HttpClient 或注入接口的自己的实现。

$httpClient = new DocRaptor\HttpClient();
$docRaptor  = new DocRaptor\ApiWrapper("YOUR_API_KEY_HERE", $httpClient);

提供的 HttpClient 是一个非常简单的针对特定领域的 curl 封装器,它从 ApiWrapper 中提取所有 curl 函数,这使得可以注入模拟客户端进行测试。

贡献

如果您发现了一个bug,请创建一个新的GitHub issue。如果您知道如何解决它,请创建一个分支,完成后,创建一个新的pull request

提交PR时,您需要安装composer来运行测试。安装完成后,在项目根目录下运行composer install。要从项目根目录运行测试,请运行vendor/bin/phpunit。它们应该都能通过!此外,我们还有travis和scrutinizer的集成,您可以在PR中检查可能需要改进或无法正常工作的事项。

发布

使用新的版本号

在推送您的带标签的新版本后,确保新的版本在Packagist上显示。