Базовый контроллер (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');
}