atol-online/docs/entity.md

53 lines
1.7 KiB
Markdown
Raw Normal View History

# Сущность
[Вернуться к содержанию](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)