ModelInterface
Документация по modelinterface. Часть API wrapper для КиноПоиска.
Интерфейс для моделей с возможностью преобразования в/из массива.
Описание
Определяет базовый контракт для всех моделей данных в системе. Обеспечивает единообразную работу с преобразованием объектов в массивы и создания объектов из массивов данных API.
Основные возможности
- Унификация процесса создания моделей из данных API
- Стандартизация сериализации объектов в массивы
- Обеспечение совместимости с системами кэширования
- Упрощение работы с JSON API responses
Методы
fromArray(array $data): object
Создает экземпляр модели из массива данных API.
Параметры:
$data(array) - Массив данных от API, содержащий все необходимые поля для модели
Возвращает:
object- Новый экземпляр класса-реализации с данными из массива
Исключения:
InvalidArgumentException- Если обязательные поля отсутствуют в массиве данныхInvalidArgumentException- Если данные имеют неверный тип или формат
Пример:
$apiData = [
'id' => 123,
'name' => 'Название',
'description' => 'Описание'
];
$model = ConcreteModel::fromArray($apiData);toArray(): array
Преобразует объект модели в массив.
Возвращает:
array- Ассоциативный массив со всеми данными объекта
Пример:
$model = new ConcreteModel('value1', 'value2');
$array = $model->toArray();
// Результат: ['field1' => 'value1', 'field2' => 'value2']Пример реализации
class ExampleModel implements ModelInterface {
public function __construct(
private string $field1,
private string $field2
) {}
public static function fromArray(array $data): object {
return new static($data['field1'], $data['field2']);
}
public function toArray(): array {
return [
'field1' => $this->field1,
'field2' => $this->field2
];
}
}
// Использование
$model = ExampleModel::fromArray($apiData);
$serialized = $model->toArray();
Связанные файлы
📚 Навигация: Главная → Интерфейсы → ModelInterface