Я создаю среду приложения MVC, используя только библиотеки и компоненты, которые я создаю сам (в основном, опыт обучения), но я не совсем уверен, как отделить библиотеки каждого типа друг от друга.
Мы назовем мое приложение Cat.
Допустим, я создаю библиотеку с именем Dog, которая вроде бы похожа на Zend и содержит множество компонентов, которые выполняют разные задачи (классы базы данных, DAL, маршрутизаторы).чтобы выяснить, какие контроллеры выбрать из заданного URL-адреса и т. д.), и они будут расположены в корневом каталоге / library / dir.
Я также создам библиотеку приложений, которая будет зависеть от конкретного приложения (возможно,содержит класс, такой как FrontController или приложение, чтобы помочь с запуском и настройкой приложения).Он будет расположен в корневом каталоге / app / library /
. Я хочу использовать библиотеку Dog как в этом приложении, так и в других приложениях, и, как мы надеемся, он будет независим от Cat, поэтому его можно использовать вчисло других приложений.
В моем приложении Cat, скажем, я создаю новый объект базы данных.Должен ли я написать:
$database = new Dog_Database();
или было бы лучше иметь класс Cat_Database, который просто расширяет класс Dog_Database?Это означало бы, что позже я могу сказать Cat_Database расширять Ferret_Database вместо этого, если это необходимо ...
Я предполагаю, что основной вопрос заключается в том, должно ли мое приложение вызывать вещи прямо из общей библиотеки или оно должно вызывать приложение-специфичные библиотечные классы, которые, в свою очередь, расширяются из разделяемой библиотеки при необходимости?