Yii и error_reporting - можно ли игнорировать Notice

Мне удобно работать с кодом, когда я PHP указываю:

error_reporting(E_ERROR | E_PARSE | E_COMPILE_ERROR);

Однако, оказалось в Yii сделать это не так просто, вот и пришлось разобраться.

Итак, покопавшись в Yii я обнаружил, что объявленные в index.php константы:

define('YII_ENABLE_ERROR_HANDLER',false);
define('YII_ENABLE_EXCEPTION_HANDLER',false);

действительно отменяют слежку за Notice, а возникший у меня:

Fatal error: Uncaught exception 'CException' with message 'Property "URL.pages" is not defined.

не относится к Notice в том смысле, какой придал бы ей стандартный подход PHP.

Yii выдает Fatal error потому, что у него в CComponent есть метод-проверки __get, который проверяет наличие изначально объявленных свойств в Вашем классе (это по мнению Yii обязательно). Чтобы игнорировать подобный Notice лично я в файле /YiiRoot/framework/base/CComponent.php для метода __get удалил код:

                throw new CException(Yii::t('yii','Property "{class}.{property}" is not defined.',
                        array('{class}'=>get_class($this), '{property}'=>$name)));

Зачем я так грубо поступил?

Переопределять этот метод смысла нет, т.к. если выйдет новая версия Yii - Вам придется снова брать код из этого метода и переопределять его заново (ведь в этом методе могут что-то изменить).

Почему я поощряю такой код?

Дело в том, что многое уже написано и дорабатывать желания нет, а Yii строг и отменить эту строгость никак не дает, хотя ситуация рядовая и всё работает например без объявления переменных в классе. Написание такого кода я не поощряю, но и не настаиваю на другом, ведь в мануалах PHP тоже нет маниакальных преследований плохого кода, а я заставлять других писать "правильный" код не собираюсь, кому интересно учить других - пусть учит, я не против.

По мотивам: 1 - 2

Оцени публикацию:
  • 1,5
Оценили человек: 1
Теги : Yii, error_reporting, Notice

Похожие статьи:

Справочники и учебники:


Предложения и пожелания:
Ваше имя:
Ваш E-mail:
Сколько будет Οдин + Τри
Главная
X

youtube.com/watch?v=7hFivbgIEqk

При полном или частичном использовании материалов данного сайта, ссылка на сайт "yapro.ru" обязательна как на источник информации.
Автоматический импорт материалов и информации с сайта запрещен.
Copyrights © 2007 - 2018 YaPro.Ru

Главная » Веб-мастеру » PHP »