PHP «trigger_error», вызывающий фатальное исключение

#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. Спасибо, но это не объясняет, что происходит. В некоторых средах это не приводит к остановке выполнения.