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

Новые заметки:

Про что мы забываем когда делаем оценку задачи по времени

Список вопросов для собеседования разработчика по телефону

Symfony2 авторизация без Doctrine2 для чайника

Phpstorm7 LiveEdit

Жесткий хабр или не хабр, тогда кто?

Яндекс.Деньги мошенничество

Как узнать какие страницы в поиске яндекса или это секрет

Последние комменты:

Yapro CMS:

Здравствуйте, Гость | Войти | Регистрация | Карта сайта | RSS ленты | Ошибка в тексте? Выделите её мышкой и нажмите: Ctrl + Enter

youtube.com/watch?v=7hFivbgIEqk

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

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