mirror of
https://github.com/anthonyaxenov/atol-online.git
synced 2024-11-25 11:44:11 +00:00
53 lines
1.7 KiB
Markdown
53 lines
1.7 KiB
Markdown
# Сущность
|
||
|
||
[Вернуться к содержанию](readme.md#toc)
|
||
|
||
---
|
||
|
||
Сущностями являются все классы, которые необходимы для взаимодействия с API. Они находятся в директори `src/Entities` и
|
||
расширяют абстрактный класс `AtolOnline\Entities\Entity`.
|
||
|
||
Каждая сущность содержит в себе только те данные, которые необходимы согласно схемы АТОЛ Онлайн API.
|
||
|
||
Ниже перечислены возможности сущностей.
|
||
|
||
## Приведение к строке JSON
|
||
|
||
```php
|
||
echo $entity;
|
||
$json_string = (string)$entity;
|
||
```
|
||
|
||
## Приведение к массиву
|
||
|
||
```php
|
||
// результат идентичен
|
||
$json_array1 = $entity->jsonSerialize();
|
||
$json_array2 = $entity->toArray();
|
||
```
|
||
|
||
## Чтение из массива
|
||
|
||
```php
|
||
$var = new \AtolOnline\Entities\Client('Иванов Иван');
|
||
echo $var['name']; // 'Иванов Иван'
|
||
$var['name'] = 'Петров Пётр'; // BadMethodCallException
|
||
```
|
||
|
||
## Fluent-сеттеры
|
||
|
||
Реализованы на уровне конкретных классов сущностей, но у некоторых могут полностью отсуствовать.
|
||
|
||
```php
|
||
$entity->setFoo($value)->setBar('bar')->...
|
||
```
|
||
|
||
Сеттеры валидируют и фильтруют данные согласно схеме АТОЛ Онлайн API, а в случае ошибочных значений -- выбрасывают
|
||
исключения.
|
||
|
||
---
|
||
|
||
Читай также: [Коллекция сущностей](collection.md)
|
||
|
||
[Вернуться к содержанию](readme.md#toc)
|