У меня есть довольно примитивная среда, которую я использовал для большинства своих проектов, но мне пришла в голову общая проблема дизайна, которую я пока не смог решить. Для данного приложения, я должен отделить структуру класса приложения от структуры фреймворка, или сборка поверх фреймворка не такая уж плохая вещь?
Например, скажем, у меня была платформа с базовым классом Controller и она была расширена для данной части моего приложения. Какое расположение имеет наибольшее значение и почему?
Структура класса A:
- Интуитивно понятный, легко найти исходные файлы при отладке.
- Имена файлов / структура каталогов отражает иерархию классов.
- Framework_Control "Framework\Control.php"
- Framework_Control_Index "Framework\Control\Index.php"
- Framework_Control_Home "Framework\Control\Home.php"
- Framework_Control_Contact "Framework\Control\Contact.php"
- Framework_Control_About "Framework\Control\About.php"
Структура класса B:
- Сохраняет модульную структуру и легко заменяет / обновляет.
- Добавляет некоторую сложность структуре каталогов, именование каталогов / файлов больше не следует за иерархией классов.
- Framework_Control "Framework\Control.php"
- Application_Control_Index "Application\Control\Index.php"
- Application_Control_Home "Application\Control\Home.php"
- Application_Control_Contact "Application\Control\Contact.php"
- Application_Control_About "Application\Control\About.php"
Я знаю, что в целом все сводится к личным предпочтениям, но я хочу убедиться, что я взвешиваю все плюсы и минусы, прежде чем решить, какой путь выбрать. Это действительно сводится к именованию классов и структуре каталогов, поскольку фактическая иерархия останется неизменной в любом случае.