Например: есть у меня автозагрузчик классов, вполне PSR-compliant, но кроме прочего он в каждой папке-неймспейсе ищет файл __init.php и подключает его раньше любого другого из этой папки.
В __init собраны в кучку необходимые этому неймспейсу мелочи, как то: свои классы исключений. Например:
/vendors/R2/__init.php
namespace R2;
class ParamException extends \Exception {}
class ConfigException extends \Exception {}
class DbException extends \Exception {}
Согласитесь, было бы слишком расточительно помещать каждый такой класс в отдельный файл. Есть и другие полезные мелочи…
Всё работает как швейцарские часы! Пока мы не попытаемся проверить свой Coding Standard с помощью Фабьена. Эта штука находит первый класс в файле __init ( здесь это ParamException ) и переименовывает его буквально в class __init.
Я в ахуе! Так надругаться над хорошей техникой надо суметь.
Пока выкручиваюсь с помощью фиктивного класса заглушки с именем __init, но это мерзость какая-то. Кто-нибудь может придумать более элегантный способ?