execut/odata-1c
最新稳定版本:0.1.1
Composer 安装命令:
composer require execut/odata-1c
包简介
ODATA protocol client adopted to use with 1C
README 文档
README
OData клиент для 1C
Установка
Рекомендуемый способ установки через Composer:
$ composer require kilylabs/odata-1c
Использование
Пример кода
<?php use Kily\Tools1C\OData\Client; require __DIR__.'/vendor/autoload.php'; $client = new Client('http://HOSTNAME/BASE/odata/standard.odata/',[ 'auth' => [ 'YOUR LOGIN', 'YOUR PASSWORD' ], 'timeout' => 300, ]); $product_data = [ 'Артикул'=>'CERTANLY_NONEXISTENT', 'Description'=>'test test test nonexistent', ]; // Creation $data = $client->{'Catalog_Номенклатура'}->create($product_data); echo "CREATED!\n"; // Getting using filter.... $data = $client->{'Catalog_Номенклатура'}->get(null,"Артикул eq 'CERTANLY_NONEXISTENT'"); echo "GOT!\n"; var_dump($data); // ... or using Ref_Key $id = $data['value'][0]['Ref_Key']; $data = $client->{'Catalog_Номенклатура'}->get($id); echo "GOT BY ID!\n"; var_dump($data); // Updating $data = $client->{'Catalog_Номенклатура'}->update($id,[ 'Description'=>'Test description', ]); echo "UPDATED!\n"; // deletion $data = $client->{'Catalog_Номенклатура'}->delete($id); echo "DELETED!\n"; // out metadata $data = $client->getMetadata(); var_dump($data);
Обработка исключений
Компонент в случае ошибочных ответов от сервера вызывает исключения Kily\Tools1C\OData\RequestException. Это исключение имеет свойство $request в качестве значения которого содержится экземпляр класса Kily\Tools1C\OData\Request со всей необходимой информацией для обработки ошибки. Например, при поиске записи возникла непредвиденная ошибка и нужно залоггировать её:
try { $data = $client->{'Catalog_Номенклатура'}->get($id); if(!$client->isOk()) { var_dump('Something went wrong: ',$client->getErrorCode(),$client->getErrorMessage(),$data); die(); } } catch (Exception $e) { log('Error while requested ' . $e->request->url . ': ' . $e->getMessage()); }
Профилирование
Для возможности перехватывать запросы к серверу oData для профилирования или похожих целей, необходимо реализовать абстрактный класс Profiler:
use Kily\Tools1C\OData\Profiler; class CustomProfiler extends Profiler { public function begin() { echo 'Start request ' . $this->url . ' (' . $this->method . ')'; if (!empty($this->data)) { echo ' with data: ' . var_export($this->data, true) . "\n<br>"; } } public function end() { echo 'Ending request ' . $this->url . ' (' . $this->method . ')' . "\n<br>"; } }
и передать его в конструктор клиента oData или задать через сеттер:
$profiler = new Profiler; $client = new Client($url, $options, $profiler); $client->setProfiler($profiler);
TODO
- сделать метод getLastId();
- поддержка XML?
统计信息
- 总下载量: 928
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 0
- 依赖项目数: 1
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2020-09-16