Можете ли вы помочь мне, пожалуйста, установить PHP set_error_handler правильно? Мне нужно обработать код, который бросает PHP предупреждение как исключение. Но я не знаю, как это сделать правильно. Теперь у меня есть этот код, который я считаю не правильным.
set_error_handler( function( $errno, $errstr, $errfile, $errline, array $errcontext )
{
throw new \Exception( $errstr, $errno );
});
$mailer->send( $mail );
restore_error_handler();
Как я видел в документация это нуждается в более сложном решении. Но я немного запутался во всех этих константах.
Есть ли способ установить его каким-нибудь элегантным способом, который не будет устанавливать все константы отдельно.
Я имею в виду что-то вроде:
function( $errno, $errstr, $errfile, $errline, array $errcontext )
{
if( $errno >= E_USER_WARNING ) throw new \Exception( $errstr, $errno );
});
Итак, как включить php-предупреждения в Exception некоторым элегантным способом. Спасибо.
Так что в моем случае должно быть условие для errno, и оно должно возвращать true.
set_error_handler( function( $errno, $errstr, $errfile, $errline, array $errcontext )
{
// Cause Php does not catch stream_socket_client warnings message.
if ( $errno == E_WARNING ) throw new \Exception( $errstr, $errno );
// Is necessary to handle other errors by default handler.
return true;
});
Других решений пока нет …