Ваш комментарий: автозагрузка в сочетании со строгим именованием файлов будет вполне достаточной в этом случае IMO.
Вы можете определить конкретное пространство имен (не в новом пути PHP 5.3 namespace
, просто в смысле общего префикса имен), например, Module_*
для имен классов модулей.
Затем вы можете организовать свои модули в каталогах с файлами классов, которые содержат ровно одно определение класса, например:
/modules/Mail/index.php // defines class Module_Mail
/modules/Database/index.php // defines class Module_Database
/modules/Image/index.php // defines class Module_Image
Ваша функция автозагрузчика будет тогда, когда запрашивается класс Module_*
:
$Database = new Module_Database("localhost", .....);
включает правильный файл из правильного каталога.
Так, например, Zend Framework делает это и делает это очень хорошо.
Рассмотрите возможность выбора более конкретного пространства имен, чем Module_
, чтобы обеспечить совместимость с другими сценариями и приложениями, если это возможно в будущем.
Немного связано: Как вы организовываете и получаете доступ к своим вспомогательным объектам в проекте PHP?