Я борюсь с этой проблемой уже со среды, и результат после моих исследований и тестов между PHP 5.6
и PHP 7.2
(также 7.1) таков: мой PHP 7 не жалуется и не замечает отсутствие расширений в моей среде.
Вместо этого он просто останавливает выполнение без сообщения об ошибке.
Вопрос
Почему PHP 7.x останавливает выполнение в середине скрипта * и не выполняетбольше не выдает сообщение об ошибке или подсказку об отсутствующих расширениях PHP?
* В основном на позиции, где функция требует использования определенного расширения PHP.
Среда
Operating System : Debian GNU/Linux 9.6 (stretch)
Web Server : nginx/1.10.3
PHP : PHP 7.2.12
/ etc / apt / sources.list
# deb cdrom:[Debian GNU/Linux 9.2.1 _Stretch_ - Official amd64 NETINST 20171013-13:07]/ stretch main
#deb cdrom:[Debian GNU/Linux 9.2.1 _Stretch_ - Official amd64 NETINST 20171013-13:07]/ stretch main
deb http://ftp.de.debian.org/debian/ stretch main
deb-src http://ftp.de.debian.org/debian/ stretch main
deb http://security.debian.org/debian-security stretch/updates main
deb-src http://security.debian.org/debian-security stretch/updates main
# stretch-updates, previously known as 'volatile'
deb http://ftp.de.debian.org/debian/ stretch-updates main
deb-src http://ftp.de.debian.org/debian/ stretch-updates main
Проблема
В то время как PHP 5.6 жалуется на отсутствие драйверов или недопустимую функцию, он просто останавливает выполнение при необходимости в середине моего кода, без сообщения об ошибке.
Пример : если некоторые из этих расширений не установлены, проблема возникает:
php7.2-mysql
php7.2-mbstring
php7.2-soap
php7.2-simplexml
Эта проблема действительно сбивала с толку, потому что я включил отчет об ошибкахи ошибки отображения, ошибки запуска в моем /etc/php/7.2/fpm/php.ini
, а также работа с ...
ini_set('display_errors',1);
ini_set('display_startup_errors',1);
error_reporting( E_ALL | E_STRICT);
... в моем коде.Но все же не появляется сообщение или ошибка для отсутствующих расширений.
Разве PHP 7.2 не может больше выдать ошибку, когда функция вызывает пропущенные необходимые расширения?Или в настройках по умолчанию php.ini
?
есть какая-то неверная конфигурация. Что мне здесь не хватает?
20181210
Решение
В конце концов, это была моя собственная ошибка, я позволил моему Router-Script попробовать / перехватить исключения и Throwables в переменную, но тогда не сбрасывал и не отлаживал их.Прошу прощения за всю затею
Дополнительное важное замечание
Чтобы убедиться, что я сделал проблему здесь понятной : я могу получать сообщения об ошибках и исключения для большинства распространенных проблем.ошибки, такие как неправильное написание функции, неправильный синтаксис, объявление, требование, отсутствующий файл и так далее.Но моя проблема здесь в том, что PHP 7.2
не может заметить, что отсутствует какое-то php-расширение, и вместо того, чтобы давать какую-то обратную связь на странице или в журнале, он просто останавливается на функции, которая будет / должна требовать php-расширения.