|
Поймать ошибку парсинга в PHP
|
|||
---|---|---|---|
#18+
Есть скрипт на PHP, который подключает (через require) дополнительные модули-плагины. Перед подключением задается set_error_handler. Но этот обработчик не перехватывает ошибки парсинга, если они есть в подключаемом модуле. Можно ли их как-то перехватить? Ну или хотя бы сообщить вызывающей стороне (а это может быть cli или веб-запрос) о том, что скрипт аварийно завершился. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2020, 12:32 |
|
Поймать ошибку парсинга в PHP
|
|||
---|---|---|---|
#18+
Alibek B. Но этот обработчик не перехватывает ошибки парсинга, если они есть в подключаемом модуле https://www.php.net/manual/ru/function.set-error-handler.phpОшибки следующих типов не могут быть обработаны пользователем: E_ERROR, E_PARSE, E_CORE_ERROR, E_CORE_WARNING, E_COMPILE_ERROR, E_COMPILE_WARNING независимо от того, где они были сгенерированы ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2020, 12:47 |
|
Поймать ошибку парсинга в PHP
|
|||
---|---|---|---|
#18+
Нет, я и имею ввиду, что через set_error_handler такие ошибки я перехватить не могу. А как можно? Через register_shutdown_function мне неудобно архитектурно (require вызывается внутри функции и при неудачном подключении мне нужно как-то передать значения некоторых переменных из локальной области видимости функции). Или других способов нет? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2020, 14:11 |
|
Поймать ошибку парсинга в PHP
|
|||
---|---|---|---|
#18+
А вот не знаю, честно говоря, можно ли из PHP вызвать/запустить его парсер для произвольного файла. И получить результат как отсутствие или наличие в проверяемом файле синтаксических ошибок и прочего непотребства. Если можно, то попробовать в эту сторону копнуть. Через eval() тоже вряд ли получится. Через exec() или аналогичную запустить подключаемый скрипт и в выводе проверить ошибки парсинга можно, думаю. Только это больше похоже на вырезание гланд через одно место... Однако, не ясно, почему нельзя заранее проверить подключаемые файлы на валидность синтаксиса и устранить ошибки. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2020, 14:55 |
|
Поймать ошибку парсинга в PHP
|
|||
---|---|---|---|
#18+
Проверятся файлы будут, но при проверке можно упустить какие-то сценарии, которые приведут к фатальной ошибке. И тогда родительский скрипт будет просто тихо закрываться. Хотелось бы, чтобы он о таких авариях мог сообщать. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2020, 15:41 |
|
|
start [/forum/topic.php?fid=23&msg=40032660&tid=1459535]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
37ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 146ms |
0 / 0 |