PHP code example of bugviktor90 / delivery-calculator
1. Go to this page and download the library: Download bugviktor90/delivery-calculator library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
bugviktor90 / delivery-calculator example snippets
$request = new Request(
'г. Москва, ул. 1905 года, 1', //адрес отправителя
'г. Новосибирск, ул. Ленина, 1', //адрес получателя
[
new RequestItem(100, 200, 300, 5.5, 5), //позиция 1. Ширина 100мм, Длина 200мм, Высота 300мм, Вес 5.5кг, 5 штук
new RequestItem(1000, 500, 400, 20) //позиция 2. Ширина 1000мм, Длина 500мм, Высота 400мм, Вес 20кг, 1 штука
]
);
//создаем калькулятор
$deliveryCalculator = new Calculator();
//добавляем нужные провайдеры по мере необходимости
$deliveryCalculator->addProvider(new AProvider());
//провайдер может принимать нужные настройки
$deliveryCalculator->addProvider(new BProvider(['url' => 'http://someurl.com/api']));
//создаем провайдер A
$aProvider = new AProvider([
'url' => 'http://someurl.com/api',
'accessKey' => 'someAccessKey',
'clientId' => 'someClientId'
]);
//создаем провайдер B
$bProvider = new BProvider(['url' => 'http://anotherurl/api/delivery']);
//создаем калькулятор и сразу устанавливаем нужные провайдеры
$deliveryCalculator = new Calculator([$aProvider, $bProvider]);
//решили добавить еще один провайдер
$localProvider = new LocalProvider(['volumeRate' => 3000, 'weightRate' => 10]);
$deliveryCalculator->addProvider($localProvider);
//и удалить ненужный
$deliveryCalculator->removeProvider($bProvider);
//получить результат для всех установленных провайдеров
$result = $deliveryCalculator->calculateAll($request);
//получить результат для конкретного провайдера
$result = $deliveryCalculator->calculate($request, $aProvider);