dennikolas
@dennikolas
PHP макака

Как отображать ошибки в Ratchet?

Приложение строится так: server.php->server.class.php->router.class.php->class.php
В server.php запускается сам сервер с обработчиком событий из server.class.php.
В server.class.php подключаются все нужные библиотеки и конфиг, создаётся класс роутера(при событии onMessage) из router.class.php.
В router.class.php подключается нужный класс и возвращается в обработчик.

В консоли не выводятся ошибки, возникшие в ходе выполнения. Т.е. скрипт молча дохнет.
Отображение ошибок включено, error reporting - e_all.
Когда пытаюсь писать всё в лог - ничего не меняется. Будто вообще ошибок нет.
Echo, var_dump и т.д. отображаются.

PHP 5.6
  • Вопрос задан
  • 122 просмотра
Решения вопроса 1
akubintsev
@akubintsev
Опытный backend разработчик
По идее надо настроить логгер и в него слать как-то так
class MyServer implements MessageComponentInterface
{
....
    public function onError(ConnectionInterface $conn, \Exception $e)
    {
        DI::get()->getLogger()->error(
            "An error has occurred: {$e->getMessage()}:\n{$e->getTraceAsString()}",
            [__FUNCTION__]
        );
        $conn->close();
    }
}


Полезно также определить
set_error_handler(
        function ($code, $string, $errfile, $errline) {
            throw new ErrorException($string, $code);
        },
        E_ALL | E_STRICT
    );
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы