Есть ли какой-либо способ получить какую-либо ошибку, будь то исключения, коды ошибок или протоколирование, когда алиасы, введенные use
, не существуют?Как показать ошибки использования пространства имен?
Например, я попробовал этот (то есть, используя все ошибки сигнализации я знаю):
<?php
ini_set('display_errors',1);
ini_set('display_startup_errors',1);
error_reporting(E_ALL);
use \Foobar as Frob; // \Foobar is actually unknown
print("still here\n");
Вместе с этой линией команды в Bash:
display_errors=on php love.php
и получить:
still here
как единственный выход. Я посмотрел на php_errors.log
, но ничего не было.
PHP-дизайнеры, в их очень ценном здравомыслии, наверняка что-то придумали?
Я понимаю, что use
- это просто псевдоним для псевдоним в мире PHP, но я не понимаю, почему не должно быть ошибок для квалифицированных судей.
+1 для образца кода.Но он читается, как ваш вступительный параграф, по причине отсутствия ошибок для квалифицированных судей, но на самом деле это не так. –
Не знаете, что вы говорите. Философия в PHP, особенно с использованием автозагрузчиков, заключается в том, чтобы как можно больше отложить загрузку файлов. Даже если вы «используете» класс в верхней части файла, вы никогда не сможете его создать во время выполнения. Таким образом, это было бы ненужным успехом в производительности для загрузки и проверки файла, просто потому, что вы упоминали его в псевдониме 'use'. Это побочный продукт модели исполнения PHP. Ошибка может отображаться только в течение фактического времени выполнения, когда класс фактически используется. – deceze
Я вижу. Было бы неплохо, если бы они дали это обоснование в своей документации по использованию. И имхо было бы просто назвать эту вещь _alias_. –