Home
Softono

Moysklad

Open source MIT PHP
54
Stars
9
Forks
2
Issues
4
Watchers
1 year
Last Commit

 About Moysklad

MoySklad (МойСклад) PHP SDK для JSON API 1.2

Platforms

Web Self-hosted

Languages

JavaScript PHP

Links

Need Help Installing Moysklad?

We provide expert installation service for this software. Our team will install, configure, and secure Moysklad on your server. plans start at just $30.

SDK для работы с API v1.2 сервиса Мой Склад

Универсальная библиотека, позволяющий работать с MoySklad API 1.2 и PHP 8.1+.

Находится в разработке, версии до v1.0.0 могут не обладать обратной совместимостью. Список изменений можно найти в Changelog. Инструкция по обновлению для версий, не поддерживающих обратную совместимость - Upgrade guide.

Установка

composer require evgeek/moysklad

Быстрый старт

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();

Полная документация

Особенности

Библиотека предоставляет два подхода к работе с API - конструктор запросов (Query) и объектный (Record). Подходы полностью совместимы и взаимозаменяемы.

Конструктор запросов (Документация)

Позволяет при помощи fluent-цепочки методов собрать абсолютно любой запрос к API Моего Склада.

$products = $ms->query()
    ->entity()
    ->product()
    ->order('name')
    ->limit(3)
    ->get();

foreach ($products as $product) {
    var_dump($product->name);
}

Объектный подход (Документация)

Подход, основанный на концепции Active Record. Каждая сущность Моего Склада представлена отдельным классом, набор сущностей - коллекцией. Намного более лаконичный, хоть и менее универсальный, чем конструктор запросов, способ взаимодействия с API.

Product::collection($ms)
    ->eachGenerator(function (Product $product) {
        $product->name = mb_strtoupper($product->name);
        $product->update();
    });

Из прочих плюсов - возможность расширять объекты сущностей собственными методами и автоподсказки свойств для IDE с глубокой вложенностью.

autocomplete

Встроенная документация

Публичные методы тщательно документированы: описание, примеры кода, ссылки на документацию API.

comment

Обратная связь

Буду рад видеть ваши идеи, пожелания и вопросы в issues.