kaiwa / clsi-client
此包的最新版本(v1.0.0)没有可用的许可信息。
用于向CLSI(Common LaTeX Service Interface)服务器发送请求的客户端库
v1.0.0
2015-08-07 17:28 UTC
Requires
- guzzlehttp/psr7: ~1.1
- psr/http-message: ~1.0
Suggests
This package is auto-updated.
Last update: 2024-09-21 23:30:42 UTC
README
用于通过 "Common LaTeX Service Interface"-API 将LaTeX文件发送到编译服务器。
此库创建psr7兼容的http请求,因此您可以使用任何psr7兼容的http客户端发送创建的请求。您可以通过这里查找http客户端。
有关CLSI服务器实现,请参阅 https://github.com/sharelatex/clsi-sharelatex
用法
Guzzle客户端示例
对于guzzle http客户端,包含GuzzleCompileRequestSender类。它负责将CompileRequest转换为http请求,并将http响应转换回CompileResponse。
您需要require建议的guzzlehttp/guzzle
composer包。
require __DIR__.'/vendor/autoload.php'; use Kaiwa\Clsi as Clsi; $compileRequest = new Clsi\Request\CompileRequest( 'http://myclsiserver.com:3013', 'myprojectId', new Clsi\Request\Resource\TextFileResource(__DIR__.'/test.tex') ); // Optional: Add more resources // $compileRequest->addResources( // new Clsi\Request\Resource\UrlResource('logo.png', 'http://myserver.com/logo.png') // ); $sender = new Clsi\Bridge\Guzzle\GuzzleCompileRequestSender(); $compileResponse = $sender->send($compileRequest); $compiledPdfUrl = $compileResponse->getOutputFile('pdf');
其他psr7兼容的http客户端示例
如果您想使用任何其他psr7兼容的http客户端(或特定的Guzzle实例),您必须手动将CompileRequest转换为http请求,并将http响应转换为CompileResponse。
require __DIR__.'/vendor/autoload.php'; use Kaiwa\Clsi as Clsi; $compileRequest = new Clsi\Request\CompileRequest( 'http://myclsiserver.com:3013', 'myprojectId', new Clsi\Request\Resource\TextFileResource(__DIR__.'/test.tex') ); // Optional: Add more resources // $compileRequest->addResources( // new Clsi\Request\Resource\UrlResource('logo.png', 'http://myserver.com/logo.png') // ); $compileRequestFactory = new Clsi\Psr\PsrCompileRequestFactory(); $compileResponseFactory = new Clsi\Psr\PsrCompileResponseFactory(); // initiate your http client $httpClient = new HttpClient(); // Transform the CompileRequest into an http request $httpRequest = $compileRequestFactory->makePsrRequest($compileRequest); // Send the http request with your client and get the response $httpResponse = $httpClient->send($httpRequest); // Transform the http response into a CompileResponse $compileResponse = $compileResponseFactory->makeCompileResponse($httpResponse); // Work with the CompileResponse $compiledPdfUrl = $compileResponse->getOutputFile('pdf');