При реализации некоторого класса я столкнулся с небольшой проблемой:
Если сценарий завершается и вызывается деструкторы , потому что сценарий завершен, я хотел иногда вызвать ошибку.
Я думал, что функция trigger_error()
будет полезна.Однако, если error_reporting(-1)
сработавшая ошибка больше не отправляется в STDOUT или STDERR - в то время как ожидается, что это будет сделано (например, если не в фазе __destructor / termination скрипта, trigger_error работает как положено).
Если я выведу какое-либо сообщение, оно будет отправлено в STDOUT (режим CLI).
Теперь мне интересно
- , как я могу вызвать ошибку в этомфаза приложения?
- и / или как я могу определить, что в данный момент сценарий завершает работу, потому что он успешно завершился?
Примечание. Я проверял connection_status()
но в моем случае это бесполезно, поскольку речь идет только об обработке соединений и просто не связана.Интересно, есть ли какая-нибудь функция, которая делает то же самое для статуса выполнения скриптов (запуск, выполнение, выход).
Упрощенный пример кода
Это очень сокращенный пример кода, иллюстрирующий проблему,Естественно, ошибка возникает только в том случае, если она имеет смысл для объекта:
<?php
class TriggerTest
{
public function __destruct()
{
trigger_error('You should have missed something.');
}
}
$obj = new TriggerTest;
exit();
Проблема в том, что trigger_error()
выполняется, но ошибка нигде не появляется.