#php #drupal-8 #php-7.1
#php #drupal-8 #php-7.1
Вопрос:
В классе Drupal Core Render Element появляется эта строка, которая обрабатывает случай недопустимого ключа в массиве рендеринга:
trigger_error((string)(new FormattableMarkup('"@key" is an invalid render array key', ['@key' => $key])), E_USER_ERROR);
В моей локальной среде разработки при возникновении этого условия я получаю белый экран смерти и трассировку стека PHP в журнале. Строка trigger_error является последней в трассировке. На других серверах, созданных IP-специалистом моего клиента, ошибка появляется в сторожевом таймере Drupal и в сообщениях страницы.
Если я временно изменю E_USER_ERROR на E_USER_NOTICE, ошибка больше не будет фатальной.
Очевидно, что где-то есть какая-то настройка, которая влияет на обработку этой ошибки и делает ее фатальной или нет, но я не смог найти, что это такое, несмотря на много поисков в Google. Настройки отчетов об ошибках Drupal на это не влияют.
Комментарии:
1. php.net/manual/en/errorfunc.constants.php Это похоже на E_ERROR: фатальные ошибки во время выполнения. Они указывают на ошибки, которые не могут быть устранены, такие как проблема с выделением памяти. Выполнение скрипта остановлено
2. Спасибо, но это не объясняет, что происходит. В некоторых средах это не приводит к остановке выполнения.