Не выводятся ошибки в реализации интерфейсов

javaPro

Новичок
Не выводятся ошибки в реализации интерфейсов

Коллеги, день добрый.
Нужна помощь новичку на вашем форуме.
Есть интерфейс, есть класс, его реализующий, есть девелоперские настройки вывода ошибок.
Все errors, warnings, notice выводятся отлично за исключением одного случая: неправильная реализация интерфейса или наследования абстрактного класса.
Если я забуду реализовать метод или реализую его с неправильной сигнатурой - все, пипец, скрипт просто умирает и НИГДЕ и НИЧЕГО не показывается и не логится.
Как это победить? Надо перелопатить кучу кода, а когда скрипт просто дохнет задача представляется просто невыполнимой.
Заранее спасибо.

Вот конфигурация:
php 5.3.0, apache 2.2, Vista

error_reporting = E_ALL | E_STRICT
display_errors = On
display_startup_errors = On
log_errors = On
ignore_repeated_errors = Off
 

r4sh

Новичок
Странно, может со сборкой php что-то не так? Ибо подобные ошибки выводятся как Fatal Error. И согласно этим настройкам все должно быть впорядке.
 

zerkms

TDD infected
Команда форума
покажи минимально достаточный код, чтобы мы тоже смогли попробовать.
 

javaPro

Новичок
Автор оригинала: r4sh
Странно, может со сборкой php что-то не так? Ибо подобные ошибки выводятся как Fatal Error. И согласно этим настройкам все должно быть впорядке.
Подкрепленный Вашей уверенностью нашел причину :)
Может кому интересно будет на будущее:

Классы (а их больше сотни) грузятся из разных директорий вот такими методами
PHP:
function _autoload_editor_classes($class) {
	$new_path = (preg_match("/win/i", PHP_OS))?CLASS_PATH.'editor\\':CLASS_PATH.'editor/';
	@include_once "{$new_path}{$class}.inc";
}
function _autoload_model_classes($class) {
	$new_path = (preg_match("/win/i", PHP_OS))?CLASS_PATH.'model\\':CLASS_PATH.'model/';
	@include_once "{$new_path}{$class}.inc";
}
//
// Итп
//

spl_autoload_register('_autoload_editor_classes');
spl_autoload_register('_autoload_model_classes');
//
// Итп
//
При этом значек "@" проглатывет и Fatal Error, о чем я ессно не знал. Теперь задача заставить эти лоадеры "проглатывать" warning'и об отсутствии файлов и пропускать фатальные ошибки.
Или вы сможете чтонибудь присоветовать из лучших практик загрузки классов из разных директорий.
 

zerkms

TDD infected
Команда форума
загружать только если файл есть! (ta-da)

ps: проще всегда использовать '/' в качестве разделителя
 

r4sh

Новичок
При отсутствии классов как раз лучше выдавать fatal error и поэтому использовать require / require_once.

Как написали выше - загружать если файл есть, иначе можно выдавать exception и сделать перехват исключений, а там уже сами решайте, что Вам удобней - выводить на экран, писать в лог и т.п.
 

javaPro

Новичок
zerkms
Спасибо! Этому коду уже 4 года, заплатка на заплатке, сейчас совершим революцию :) Спасибо еще раз и удачи.
 
Сверху