Задать вопрос
@defmin

Что должно отловиться в ошибки — первее?

Обработчик ошибок тестирую: тупо генерирую ошибки:

<?php

namespace App\Actions;

use Core\Services\Display\View;
use Core\Services\Http\Request;
use Core\Services\Http\Response;

readonly class ExampleAction
{
    use example; // ловится первым

    public function __construct(
        private View $view
    )
    {
        strpos(); // не ловится первым
    }

    public function __invoke(Request $request, Response $response): Response
    {
        $this->view->addAttribute('page.title', 'Заголовок');

        return $this->view->render($response, 'example.example');
    }
}


Отлуп:

67ee3911dde71601277165.png

А разве не должно первее из конструктора прилететь: strpos() expects at least 2 arguments, 0 given?

Почему первее прилетает несуществующий трейт, если конструктор отрабатывает раньше?

p.s. потому что фаталка?
  • Вопрос задан
  • 103 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Сначала, ещё до выполнения кода отрабатывает парсинг вашего файла самим PHP. И уже в этот момент возникает ошибка с отсутствующим трейтом, который тоже надо распарсить и включить в AST. А, поскольку трейта нету, то возникает ошибка. До выполнения кода, когда обнаруживается несоответствие количества параметров, дело даже не доходит.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы