v0.11.0 [Changelog]
Для работы с attributemetadata
используйте конструктор запросов.
До:
$attribute = AttributeMetadata::make($ms, ['id' => 'cb26a487-0f3a-11ee-0a80-060300137dbf'])->get();
$attributeList = AttributeMetadata::collection($ms)->get()->rows;
$meta = Meta::attributemetadata('cb26a487-0f3a-11ee-0a80-060300137dbf');
После:
$attribute = $ms->query()
->entity()
->variant()
->metadata()
->characteristics()
->byId('cb26a487-0f3a-11ee-0a80-060300137dbf')
->get();
$attributeList = $ms->query()
->entity()
->variant()
->metadata()
->get()
->characteristics;
$meta = Meta::create(
['entity', 'variant', 'metadata', 'characteristics', 'cb26a487-0f3a-11ee-0a80-060300137dbf'],
'attributemetadata',
);
v0.10.0 [Changelog]
Затронуло только Customerorder
До:
use Evgeek\Moysklad\Api\Query\Segments\Methods\Documents\CustomerorderSegment;
use Evgeek\Moysklad\Api\Record\Objects\Documents\Customerorder;
use Evgeek\Moysklad\Api\Record\Collections\Documents\CustomerorderCollection;
После:
use Evgeek\Moysklad\Api\Query\Segments\Methods\Documents\CustomerOrderSegment;
use Evgeek\Moysklad\Api\Record\Objects\Documents\CustomerOrder;
use Evgeek\Moysklad\Api\Record\Collections\Documents\CustomerOrderCollection;
До:
use Evgeek\Moysklad\Api\Query\Segments\ById\ByIdSegmentCommon;
use Evgeek\Moysklad\Api\Query\Segments\ById\ByIdSegmentPositioned;
use Evgeek\Moysklad\Api\Query\Segments\Methods\AbstractMethodSegmentNamed;
use Evgeek\Moysklad\Api\Query\Segments\Methods\MethodSegmentCommon;
После:
use Evgeek\Moysklad\Api\Query\Segments\ById\ByIdCommonSegment;
use Evgeek\Moysklad\Api\Query\Segments\ById\ByIdWithPositionsSegment;
use Evgeek\Moysklad\Api\Query\Segments\Methods\AbstractMethodNamedSegment;
use Evgeek\Moysklad\Api\Query\Segments\Methods\MethodCommonSegment;
Словари (Evgeek\Moysklad\Dictionaries\...
) Document
, Endpoint
и Entity
заменены на Segment
(сегменты в url) и Type
(type в meta сущности).
До:
Endpoint::ENTITY;
Document::CUSTOMERORDER;
После:
Segment::ENTITY;
Type::CUSTOMERORDER;
v0.8.0 [Changelog]
Данный namespace используется fluent-цепочкой билдера запросов ($ms->query()->...
), поэтому изменения в нём не влияют на работу библиотеки. Однако, если ваш проект явно использует этот namespace, проверьте следующее:
До:
Evgeek\Moysklad\Api\Query
Evgeek\Moysklad\Api\Segments\Special\MassDelete
Evgeek\Moysklad\Api\Segments\...
Evgeek\Moysklad\Api\Traits\Segments\...
После:
Evgeek\Moysklad\Api\Query\QueryBuilder
Evgeek\Moysklad\Api\Query\Segments\Special\MassDelete
Evgeek\Moysklad\Api\Query\Segments\...
Evgeek\Moysklad\Api\Query\Traits\Segments\...
До:
Meta::state('25cf41f2-b068-11ed-0a80-0e9700500d7e', 'counterparty');
После:
Meta::state('counterparty', '25cf41f2-b068-11ed-0a80-0e9700500d7e');
До:
Meta::setFormat(new ArrayFormat());
Meta::product('25cf41f2-b068-11ed-0a80-0e9700500d7e');
После:
//Создание меты через основной объект MoySklad применит форматирование, заданное в MoySklad
$ms->meta()->product('25cf41f2-b068-11ed-0a80-0e9700500d7e');
//Альтернатива - явная передача форматтера в хелпер (по умолчанию - StdClassFormat)
Meta::product('25cf41f2-b068-11ed-0a80-0e9700500d7e', new ArrayFormat())
Не требуется ничего менять, если вы не работали с форматтерами напрямую.
До:
ArrayFormat::encode($entity);
StdClassFormat::decode($entity);
После:
(new ArrayFormat())->encode($entity);
(new StdClassFormat())->decode($entity);
v0.7.0 [Changelog]
До:
$ms->query()->entity()->customerorder()->byId('guid')
->expand('agent', 'organization');
После:
$ms->query()->entity()->customerorder()->byId('guid')
->expand(['agent', 'organization']);
До:
$ms->query()->entity()->product()
->filters([
['minimumBalance', '=', '0'],
['code', FilterSign::NEQ, 123],
]);
После:
$ms->query()->entity()->product()
->filter([
['minimumBalance', '=', '0'],
['code', FilterSign::NEQ, 123],
]);
Не требуется ничего менять, если вы не переопределяли стандартный формат.
До:
$ms = new \Evgeek\Moysklad\MoySklad(
formatter: \Evgeek\Moysklad\Formatters\StdClassFormat::class
);
После:
$ms = new \Evgeek\Moysklad\MoySklad(
formatter: new \Evgeek\Moysklad\Formatters\StdClassFormat()
);
Не требуется ничего менять, если вы не переопределяли стандартный отправитель.
До:
$ms = new \Evgeek\Moysklad\MoySklad(
requestSender: new \Evgeek\Moysklad\Http\GuzzleSender()
);
После:
$ms = new \Evgeek\Moysklad\MoySklad(
requestSenderFactory: new \Evgeek\Moysklad\Http\GuzzleSenderFactory()
);
До:
Evgeek\Moysklad\Exceptions\ApiException
Evgeek\Moysklad\Exceptions\InputException
Evgeek\Moysklad\Exceptions\ConfigException
Evgeek\Moysklad\Exceptions\FormatException
Evgeek\Moysklad\Exceptions\GeneratorException
Evgeek\Moysklad\Exceptions\AbstractException
После:
Evgeek\Moysklad\Exceptions\RequestException
InvalidArgumentException
InvalidArgumentException
InvalidArgumentException
UnexpectedValueException
- Удалён
Данный namespace используется fluent-цепочкой билдера запросов ($ms->query()->...
), поэтому изменения в нём не влияют на работу библиотеки. Однако, если ваш проект явно использует этот namespace, проверьте следующее:
До:
Evgeek\Moysklad\Api\Builders\Methods\Special\Debug
Evgeek\Moysklad\Api\Builders\Query
Evgeek\Moysklad\Api\Builders\Methods\Special\MassDelete
Evgeek\Moysklad\Api\Builders\...
Evgeek\Moysklad\Api\Traits\Builders\...
После:
Evgeek\Moysklad\Api\Debug
Evgeek\Moysklad\Api\Query
Evgeek\Moysklad\Api\Segments\Special\MassDelete
Evgeek\Moysklad\Api\Segments\...
Evgeek\Moysklad\Api\Traits\Segments\...
Namespace проекта приведён к PSR Naming Conventions.
Помимо Evgeek\Moysklad\Formatters\JsonFormatterInterface
, прочие переименования, аналогично предыдущему пункту, не влияют на API библиотеки.
До:
Evgeek\Moysklad\Formatters\JsonFormatter
Evgeek\Moysklad\Formatters\MultiDecoder
Evgeek\Moysklad\Api\Builders\Builder
Evgeek\Moysklad\Api\Builders\BuilderCommon
Evgeek\Moysklad\Api\Builders\BuilderNamed
Evgeek\Moysklad\Api\Builders\ById\ById
Evgeek\Moysklad\Api\Builders\Endpoints\EndpointNamed
Evgeek\Moysklad\Api\Builders\Methods\MethodNamed
После:
Evgeek\Moysklad\Formatters\JsonFormatterInterface
Evgeek\Moysklad\Formatters\AbstractMultiDecoder
Evgeek\Moysklad\Api\AbstractBuilder
Evgeek\Moysklad\Api\Segments\AbstractSegmentCommon
Evgeek\Moysklad\Api\Segments\AbstractSegmentNamed
Evgeek\Moysklad\Api\Segments\ById\AbstractById
Evgeek\Moysklad\Api\Segments\Endpoints\AbstractEndpointNamed
Evgeek\Moysklad\Api\Segments\Methods\AbstractMethodNamed
v0.6.0 [Changelog]
До:
$ms = new \Evgeek\Moysklad\MoySklad(
credentials: ['token'],
format: \Evgeek\Moysklad\Enums\Format::OBJECT,
);
Meta::setFormat(\Evgeek\Moysklad\Enums\Format::ARRAY);
После:
$ms = new \Evgeek\Moysklad\MoySklad(
credentials: ['token'],
formatter: \Evgeek\Moysklad\Formatters\StdClassFormat::class,
);
Meta::setFormat(\Evgeek\Moysklad\Formatters\ArrayFormat::class);
До:
$ms->entity()->product();
После:
$ms->query()->entity()->product();
До:
$product = $ms->entity()->product()->limit(1)->filter(
(new \Evgeek\Moysklad\Filter())
->eq('archived', 'false')
->eq('name', 'tangerine')
->neq('code', '123')
);
После:
$product = $ms->entity()->product()->limit(1)
->filter('archived', false)
->filter('name', '=', 'tangerine')
->filter('code', FilterSign::NEQ, 123);
//или
$product = $ms->query()->entity()->product()->limit(1)
->filters([
['archived', false],
['name', '=', 'tangerine'],
['code', FilterSign::NEQ, 123],
]);
v0.5.1 [Changelog]
До:
Meta::state($guid);
После:
Meta::state($guid, 'customerorder');