kaiwa/clsi-client

此包的最新版本(v1.0.0)没有可用的许可信息。

用于向CLSI(Common LaTeX Service Interface)服务器发送请求的客户端库

v1.0.0 2015-08-07 17:28 UTC

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');