Базовый контроллер (BaseController)
BaseController наследуется от yii\rest\Controller (или yii\web\Controller, но в шаблоне используется rest\Controller). Он предоставляет набор защищённых методов для упрощения формирования ответов.
Основные методы
protected function item($dto): ItemDto
Оборачивает переданные данные в ItemDto.
protected function collection(array $items, ?int $total = null, ?int $page = null, ?int $limit = null): CollectionDto
Создаёт CollectionDto с возможностью передачи пагинации.
protected function error(string $message, int $code = 400, array $details = []): ErrorDto
Генерирует ErrorDto для ответа об ошибке.
protected function success($data = null, string $message = 'OK'): SuccessDto
Возвращает SuccessDto.
protected function parseIdRangeFromPath(?string $param): ?IdRange
Парсит строку с диапазонами ID (например, 1,3:20) в объект IdRange (value object из домена).
protected function getUserId(): ?int
Возвращает ID текущего пользователя из Yii::$app->user->id.
protected function getUserIdentity(): ?YiiIdentity
Возвращает объект YiiIdentity текущего пользователя.
protected function getLimit(): int
Извлекает параметр limit из запроса, ограничивая его заданными пределами (pageSizeLimit).
protected function getPage(): int
Извлекает параметр page (по умолчанию 1).
Использование в дочерних контроллерах
public function actionIndex()
{
$items = ...; // массив данных
return $this->collection($items, 100, 1, 20);
}
public function actionCreate()
{
// ...
return $this->success(['id' => 123], 'Created');
}