mrpix / cloudprintsdk
这是使用mpXcloudprint服务的官方PHP库。
Requires
- php: ^8.2
- ext-json: *
- guzzlehttp/psr7: ^2.6
- nyholm/psr7: ^1.8
- php-http/client-common: ^2.2.1
- php-http/discovery: ^1.19
- php-http/message: ^1.16
- php-http/multipart-stream-builder: ^1.2
- psr/http-client: ^1.0.1
- symfony/cache: ^7.0
- symfony/validator: ^7.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.52
- phpstan/phpstan: ^1.10
- phpstan/phpstan-phpunit: ^1.3
- phpunit/phpunit: ^11.0
- rector/rector: ^1.0.0
- symfony/http-client: ^7.0.0
This package is not auto-updated.
Last update: 2024-09-18 12:51:31 UTC
README
这是mr. pixel的云打印服务的官方PHP SDK。此库包含与mpXcloudprint API交互的方法。以下是使用此SDK的简短说明和一些示例以开始使用。有关更多信息,请访问我们的官方文档。
安装
此库不依赖于任何http客户端如Guzzle。您可以使用任何支持php-http/client-implementation的http客户端。
为了快速开始,安装cloudprint-sdk并使用您喜欢的http客户端,如Guzzle或Symfony Http Client
composer require mrpix/cloudprintsdk symfony/http-client
用法
此项目依赖于Composer。建议让Composer自动加载器自动加载所有依赖项。以下示例将向您展示如何包含mpXcloudprint API的客户端。
require 'vendor/autoload.php'; use Mrpix\CloudPrintSDK\HttpClient\CloudPrintClient; $client = new CloudPrintClient();
身份验证
某些操作需要您进行身份验证。您可以使用以下三种身份验证选项。
-
在CloudPrintClient构造函数中提供登录凭据
第一种选项是在构造CloudPrintClient时提供您的登录凭据。为此,您必须将用户名作为第一个参数传递,将密码作为第二个参数传递。
// Load credentials from config $username = 'your-username@example.com'; $password = 'yourSecretPassword'; $client = new CloudPrintClient($username, $password);
然而,使用硬编码的登录凭据是不安全的。如果您想从某些配置中动态加载凭据,则此方法很完美。对于静态凭据,建议的方法是使用环境变量。
-
环境变量
如果您没有在第一个选项中提供您的登录凭据,cloudprint SDK会查找环境变量。您可以在以下环境变量中提供您的凭据
MRPIX_CLOUDPRINT_USERNAME=your-username@example.com MRPIX_CLOUDPRINT_PASSWORD=yourSecretPassword
-
显式登录
第三种选项是仅在需要身份验证时使用您的凭据登录。为此,您必须在发送请求之前调用login方法。以下是如何做到这一点的示例
$client->login('your-username@example.com', 'yourSecretPassword');
注意:如果登录凭据不正确,服务器将为所有请求返回401或403响应。
测试登录凭据
要测试登录凭据是否正确,您可以使用以下示例
if($client->checkLoginCredentials('your-username@example.com', 'yourSecretPassword')) { echo 'Login successful!'; } else { echo 'Login failed!'; }
插入新的打印作业
以下部分解释了如何创建新的打印作业。建议创建一个新的指令实例。请求可以通过使用指令的'build'方法构建。通过编译请求,所有给定数据将自动由API解析到所需格式。
模板
以下示例可用于根据预定义的模板创建新的打印作业
$instruction = new InsertTemplatePrintJobInstruction( 'Printername', 'Templatename', [ 'variable_key'=>'variable_value' ] ); $request = $instruction->buildRequest(); try { $client->send($request); } catch (ServerException $e) { // In case of an error echo 'Error '.$e->getStatusCode().": ".$e->getMessage(); }
文档
如果您不想使用模板,您可以上传整个文档。为此,您可以使用以下代码
$instruction = new InsertDocumentPrintJobInstruction( 'Printername', 'This is the content of the document', 'nameOfTheFile.stm', MediaTypes::TEXT_VND_STAR_MARKUP ); $request = $instruction->buildRequest(); try { $client->send($request); } catch (ServerException $e) { // In case of an error echo 'Error '.$e->getStatusCode().": ".$e->getMessage(); }