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

  • Автор темы Автор темы javaPro
  • Дата начала Дата начала

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
 
Странно, может со сборкой php что-то не так? Ибо подобные ошибки выводятся как Fatal Error. И согласно этим настройкам все должно быть впорядке.
 
покажи минимально достаточный код, чтобы мы тоже смогли попробовать.
 
Автор оригинала: 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'и об отсутствии файлов и пропускать фатальные ошибки.
Или вы сможете чтонибудь присоветовать из лучших практик загрузки классов из разных директорий.
 
загружать только если файл есть! (ta-da)

ps: проще всегда использовать '/' в качестве разделителя
 
При отсутствии классов как раз лучше выдавать fatal error и поэтому использовать require / require_once.

Как написали выше - загружать если файл есть, иначе можно выдавать exception и сделать перехват исключений, а там уже сами решайте, что Вам удобней - выводить на экран, писать в лог и т.п.
 
zerkms
Спасибо! Этому коду уже 4 года, заплатка на заплатке, сейчас совершим революцию :) Спасибо еще раз и удачи.
 
Сверху