webit / gls-bundle
GLS ADE和GLS Track & Trace API的Symfony 2集成
2.0.0
2019-02-20 06:54 UTC
Requires
- php: >=5.3.2
- symfony/symfony: ^2.3.0|^3.0.0
- webit/gls-ade: ^2.0.0
- webit/gls-tracking: ^2.0.0
Requires (Dev)
- behat/behat: ~3.0
- behat/symfony2-extension: ~2.0
- phpunit/phpunit: ~4.2
This package is auto-updated.
Last update: 2024-09-20 19:19:48 UTC
README
WebitGlsBundle
GLS ADE和GLS Track & Trace API的Symfony 2集成
安装
通过Composer
将webit/gls-bundle添加到composer.json
{ "require": { "php": ">=5.3.2", "webit/gls-bundle": "dev-master" }, "autoload": { "psr-0": { "Acme": "src/" } } }
在Kernel中注册Bundle
添加以下行
// in AppKernel::registerBundles() $bundles = array( // ... new Webit\Bundle\SoapApiBundle\WebitSoapApiBundle(), new Webit\Bundle\GlsBundle\WebitGlsBundle(), // ... );
配置
您可以定义所需的所有账户(ADE账户和Track & Trace账户)
webit_gls: ade_accounts: my-production-account: username: my-ade-username password: my-ade-password test_mode: false my-test-account: username: my-ade-test-username password: my-ade-test-password test_mode: true track_accounts: my-account: username: my-track-and-trace-username password: my-track-and-trace-password test_mode: false
使用方法
要使用GLS API,您需要AccountManager('webit_gls.account_manager'),ApiProvider('webit_gls.api_provider'),和TrackingUrlProvider('webit_gls.tracking.url_provider')。您可以直接从Service Container获取它们或将它们注入到您的类中。
<?php namespace Acme\Bundle\AcmeBundle\Controller; use Webit\Bundle\GlsBundle\Api\ApiProviderInterface; use Webit\Bundle\GlsBundle\Account\AccountManagerInterface; use Webit\GlsTracking\UrlProvider\TrackingUrlProvider; class MyController { /** * @var AccountManagerInterface */ private $accountManager; /** * @var ApiProviderInterface */ private $apiProvider; /** * @var TrackingUrlProvider */ private $trackingUrlProvider; public function __construct( AccountManagerInterface $accountManager, ApiProviderInterface $apiProvider, TrackingUrlProvider $trackingUrlProvider ) { $this->accountManager = $accountManager; $this->apiProvider = $apiProvider; $this->trackingUrlProvider = $trackingUrlProvider; } public function consignmentPrepareAction() { /** @var \Webit\Bundle\GlsBundle\Account\AdeAccount */ $account = $this->accountManager->getAdeAccount('my-test-account'); /** @var \Webit\GlsAde\Api\ConsignmentPrepareApi */ $consignmentPrepareApi = $this->apiProvider->getConsignmentPrepareApi($account); // do your stuff with API } public function checkParcelStatusAction() { /** @var \Webit\Bundle\GlsBundle\Account\TrackAccount */ $account = $this->accountManager->getTrackAccount('my-account'); /** @var \Webit\GlsTracking\Api\TrackingApi */ $trackingApi = $this->apiProvider->getTrackingApi($account); // do your stuff with API } public function getTrackingUrlAction($reference, $country = 'EN') { $url = $trackingUrlProvider->getStandardTrackingUrl($reference, $country); // do your stuff with URL } }
要了解如何使用GLS API,请参阅以下内容:
- GLS-ADE: https://github.com/dbojdo/gls-ade
- GLS Track & Trace: https://github.com/dbojdo/gls-tracking