expectedbehavior / php-docraptor
DocRaptor API 的官方 PHP 封装。
Requires
- php: >=5.4.0
- ext-curl: *
Requires (Dev)
- mockery/mockery: 0.9.*
- phpunit/phpunit: 4.5.*
This package is not auto-updated.
Last update: 2024-09-28 16:20:42 UTC
README
#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 update
或 composer 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中检查可能需要改进或无法正常工作的事项。
发布
使用新的版本号
- 更新
CHANGELOG.markdown
- 更新
composer.json
- 更新
README.markdown
中的安装说明 - 更新
Config.php
git tag <version>
git push origin master --tags
在推送您的带标签的新版本后,确保新的版本在Packagist上显示。