Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/evgeek/moysklad
MoySklad (МойСклад) PHP SDK для JSON API 1.2
https://github.com/evgeek/moysklad
api api-client moysklad moysklad-client php php81
Last synced: about 4 hours ago
JSON representation
MoySklad (МойСклад) PHP SDK для JSON API 1.2
- Host: GitHub
- URL: https://github.com/evgeek/moysklad
- Owner: evgeek
- License: mit
- Created: 2022-02-28T00:14:57.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2024-01-10T20:43:07.000Z (9 months ago)
- Last Synced: 2024-09-14T16:45:36.123Z (10 days ago)
- Topics: api, api-client, moysklad, moysklad-client, php, php81
- Language: PHP
- Homepage:
- Size: 510 KB
- Stars: 43
- Watchers: 4
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# SDK для работы с API v1.2 сервиса Мой Склад
Универсальная библиотека, позволяющий работать с [MoySklad API 1.2](https://dev.moysklad.ru/doc/api/remap/1.2) и `PHP 8.1+`.
Находится в разработке, версии до `v1.0.0` могут не обладать обратной совместимостью. Список изменений можно найти в [Changelog](CHANGELOG.md). Инструкция по обновлению для версий, не поддерживающих обратную совместимость - [Upgrade guide](UPGRADE.md).
## Установка
```bash
composer require evgeek/moysklad
```## Быстрый старт
```php
use Evgeek\Moysklad\Api\Record\Objects\Entities\Product;
use Evgeek\Moysklad\MoySklad;$ms = new MoySklad(['token']);
//Конструктор запросов
$product = $ms->query()
->entity()
->product()
->byId('25cf41f2-b068-11ed-0a80-0e9700500d7e')
->get();//Active Record
$product = Product::make($ms);
$product->id = '25cf41f2-b068-11ed-0a80-0e9700500d7e';
$product->get();
//Или
$product = Product::make($ms, ['id' => '25cf41f2-b068-11ed-0a80-0e9700500d7e'])->get();
```## Полная документация
* [Оглавление](/docs/index.md)
* [Настройка клиента](/docs/setup.md)
* [Взаимодействие с API](/docs/api_interaction.md)
* [Форматтеры](/docs/formatters.md)
* [Вспомогательные инструменты](/docs/tools.md)
* [Обработка исключений](/docs/exceptions.md)## Особенности
Библиотека предоставляет два подхода к работе с API - конструктор запросов (Query) и объектный (Record). Подходы полностью совместимы и взаимозаменяемы.
### Конструктор запросов ([Документация](/docs/query_builder.md))
Позволяет при помощи fluent-цепочки методов собрать абсолютно любой запрос к API Моего Склада.
```php
$products = $ms->query()
->entity()
->product()
->order('name')
->limit(3)
->get();foreach ($products as $product) {
var_dump($product->name);
}
```### Объектный подход ([Документация](/docs/active_record.md))
Подход, основанный на концепции Active Record. Каждая сущность Моего Склада представлена отдельным классом, набор сущностей - коллекцией. Намного более лаконичный, хоть и менее универсальный, чем конструктор запросов, способ взаимодействия с API.
```php
Product::collection($ms)
->eachGenerator(function (Product $product) {
$product->name = mb_strtoupper($product->name);
$product->update();
});
```Из прочих плюсов - возможность расширять объекты сущностей собственными методами и автоподсказки свойств для IDE с глубокой вложенностью.
![autocomplete](/docs/autocomplete.gif)
### Встроенная документация
Публичные методы тщательно документированы: описание, примеры кода, ссылки на документацию API.
![comment](/docs/comments.png)
## Обратная связь
Буду рад видеть ваши идеи, пожелания и вопросы в [issues](https://github.com/evgeek/moysklad/issues).