我正在创建一个 MVC 应用程序框架,仅使用我自己创建的库和组件(主要是一种学习经验),但我不太确定如何将每种库彼此分开。
我们将我的应用程序称为 Cat。
假设我正在创建一个名为 Dog 的库,它有点像 Zend,并且充满了执行不同任务的不同组件(数据库类、DAL、路由器,用于确定从给定 URL 中选择哪些控制器等),并将位于 root/library/ 目录中。
我还将创建一个特定于应用程序的应用程序库(可能包含诸如 FrontController 或 Application 之类的类,以帮助启动和配置应用程序)。这将位于 root/app/library/
我想在这个应用程序和其他应用程序上使用 Dog 库,并且希望它独立于 Cat,因此它可以用于许多其他应用程序。
在我的 Cat 应用程序中,假设我创建了一个新的数据库对象。我应该写:
$database = new Dog_Database();
或者拥有一个纯粹扩展 Dog_Database 类的 Cat_Database 类会更好吗?这意味着我可以稍后告诉 Cat_Database 扩展 Ferret_Database 如果需要...
我想主要的问题是,我的应用程序应该直接从共享库调用东西,还是应该调用特定于应用程序的库类,如果需要,这些库类又从共享库扩展?