elcuro / qdl-php-client
QDL的简单PHP客户端
dev-master
2024-05-23 22:01 UTC
Requires
- php: ^8.1
- psr/http-client-implementation: ^1.0
Requires (Dev)
- dms/phpunit-arraysubset-asserts: ^0.5.0
- kriswallsmith/buzz: ^1.2
- nyholm/psr7: ^1.8
- php-http/mock-client: ^1.0
- ramsey/devtools: ^2.0
- dev-master
- dev-dependabot/github_actions/actions/checkout-4.1.7
- dev-dependabot/github_actions/ridedott/merge-me-action-2.10.93
- dev-dependabot/github_actions/shivammathur/setup-php-2.31.1
- dev-dependabot/github_actions/codecov/codecov-action-4.5.0
- dev-dependabot/github_actions/ramsey/composer-install-3.0.0
This package is auto-updated.
Last update: 2024-10-01 10:18:02 UTC
README
关于
QDL(斯洛伐克物流公司)的简单PHP客户端QDL
安装
使用Composer将该软件包作为依赖项安装。
composer require elcuro/qdl-php-client
使用方法
创建QDL客户端
客户端不依赖于任何特定的HTTP客户端。它支持任何PSR-18兼容的客户端。例如: Buzz客户端
您还需要安装一个PSR-17请求/响应工厂。它使用该工厂来创建PSR-7请求和响应。例如: nyholm/psr7
use Elcuro\QdlPhpClient\Client\Client; use Nyholm\Psr7\Factory\Psr17Factory; use Buzz\Client\Curl; // We will use Buzz client and nyholm/psr7 factories $factory = new Psr17Factory(); $client = new Client( new Curl($factory), $factory, $factory, 'QDL_USERNAME', 'QDL_PASSWORD' );
添加/订购/取消运输
use Elcuro\QdlPhpClient\Shipping\Shipment\Shipment; use Elcuro\QdlPhpClient\Shipping\Shipment\ShipmentPackage; use Elcuro\QdlPhpClient\Shipping\ShipmentManager; // Create shipment manager $shipmentManager = new ShipmentManager($client, new AddedShipmentFactory()); // Create shipment $shipment = new Shipment(); $shipment ->setSenderId(1) ->setRecipientName('Fake user') //... ->addPackage(new ShipmentPackage(1)) ; // Add shipment $addedShipment = $shipmentManager->addShipment($shipment); // Order unordered shipments $shipmentManager->order(); // Cancel shipment $shipmentManager->cancelShipment($addedShipment->getId());
标签和交接协议
use Elcuro\QdlPhpClient\Document\DocumentFactory; use Elcuro\QdlPhpClient\Document\DocumentFetcher; use Elcuro\QdlPhpClient\Document\Label\LabelType; // Create document fetcher $documentFetcher = new DocumentFetcher($client, new DocumentFactory()); // Show label PDF echo $documentFetcher->fetchLabel([30124122200010], LabelType::A4)->getPDF(); // or show handover protocol echo $documentFetcher->fetchHandoverProtocol([30124122200010])->getPDF();
跟踪
use Elcuro\QdlPhpClient\Tracking\TrackLog\TrackLogsFactory; use Elcuro\QdlPhpClient\Tracking\Tracker; // Create tracker $tracker = new Tracker($client, new TrackLogsFactory()); // Fetch track logs $trackLogs = $tracker->trackShipment(30124122200010); // Show track logs foreach ($trackLogs as $trackLog) { sprintf( "Date: %s, Status: %s\n", $trackLog->getDate()->format('Y-m-d'), $trackLog->getName() ); }
贡献
欢迎贡献!要贡献力量,请熟悉CONTRIBUTING.md。
版权和许可
elcuro/qdl-php-client版权所有© Juraj Jancuska,并按照MIT许可证(MIT)的条款许可使用。更多信息请参阅LICENSE。