Как я могу зарегистрировать фатальную ошибку, возникающую в call_user_func_array? Его внутри скрипта CLI, который работает как демон. Я хотел бы регистрироваться при возникновении ошибки, но вместо этого он всегда выдает сообщение об ошибке.ошибка регистрации в call_user_func_array()
вещи, которые я пытался, но не смог сделать его работу:
try {call_user_func_array()} catch (Exception $e) {do_log}
или
ob_start();
try {call_user_func_array()} catch (Exception $e) {do_log}
или
register_shutdown_function('shutdownFunction');
или
ini_set('error_log',$baseDir.'/Jobque_error.log');
fclose(STDIN);
fclose(STDOUT);
fclose(STDERR);
$STDIN = fopen('/dev/null', 'r');
$STDOUT = fopen($baseDir.'/Jobque_application.log', 'ab');
$STDERR = fopen($baseDir.'/Jobque_daemon.log', 'ab');
Сад факты жизни. – SunWuKung
Я знаю, что это старый поток, но да, вы можете * уловить фатальную ошибку. Используйте 'error_get_last()' внутри функции, которую вы передаете 'register_shutdown_handler()'. 'error_get_last()' дает ассоциативный массив деталей ошибок. Если его свойство 'type' равно' E_ERROR', это была фатальная ошибка, которая была поймана. Это работает с PHP 5.2. – curtisdf