PHP, как вызвать ошибку пользователя с помощью trigger_error в деструкторе объекта, пока скрипт выключается? - PullRequest
0 голосов
/ 03 июня 2011

При реализации некоторого класса я столкнулся с небольшой проблемой:

Если сценарий завершается и вызывается деструкторы , потому что сценарий завершен, я хотел иногда вызвать ошибку.

Я думал, что функция trigger_error() будет полезна.Однако, если error_reporting(-1) сработавшая ошибка больше не отправляется в STDOUT или STDERR - в то время как ожидается, что это будет сделано (например, если не в фазе __destructor / termination скрипта, trigger_error работает как положено).

Если я выведу какое-либо сообщение, оно будет отправлено в STDOUT (режим CLI).

Теперь мне интересно

  1. , как я могу вызвать ошибку в этомфаза приложения?
  2. и / или как я могу определить, что в данный момент сценарий завершает работу, потому что он успешно завершился?

Примечание. Я проверял connection_status() но в моем случае это бесполезно, поскольку речь идет только об обработке соединений и просто не связана.Интересно, есть ли какая-нибудь функция, которая делает то же самое для статуса выполнения скриптов (запуск, выполнение, выход).

Упрощенный пример кода

Это очень сокращенный пример кода, иллюстрирующий проблему,Естественно, ошибка возникает только в том случае, если она имеет смысл для объекта:

<?php
class TriggerTest
{
    public function __destruct()
    {
        trigger_error('You should have missed something.');
    }
}
$obj = new TriggerTest;
exit();

Проблема в том, что trigger_error() выполняется, но ошибка нигде не появляется.

Ответы [ 2 ]

1 голос
/ 03 июня 2011

Как насчет того, чтобы принудительно настроить отчет об ошибках на определенный параметр, вызвать ошибку и затем вернуть отчет об ошибках в ее нормальную форму?

0 голосов
/ 03 июня 2011

Ответ: Просто сделай это. У меня была некоторая неправильная конфигурация для обработчика ошибок, и поэтому он не работал. Моя вина.

Однако все еще интересно, есть ли какая-либо функция или аналогичная для определения состояния выполнения при завершении работы .

...