<?php

namespace app\controllers;

use Yii;
use yii\web\Controller;

class ErrorController extends Controller
{
    public function actionIndex(): string
    {
        $exception = Yii::$app->errorHandler->exception;

        if ($exception !== null) {
            // Исключение не выброшено

            // Запись кода ошибки
            $code = $exception->statusCode ?? $exception->getCode() ?? 0;

            // Запись названия ошибки
            $title = match ($code) {
                404 => '404 (Не найдено)',
                default => '500 (Ошибка сервера)'
            };

            // Запись сообщения об ошибке
            $description = match ($code) {
                404 => 'Страница не найдена',
                default => $exception->getMessage()
            };

            return $this->render('/error', compact('exception', 'code', 'title', 'description'));
        }
    }

    public static function throw(string $title, string $description): string {

        return yii::$app->controller->render('/error', compact('title', 'description'));
    }
}
