我正在创建一个MVC应用程序框架,只使用我自己创建的库和组件(主要是学习经验),但我不太确定如何将每种库彼此分开。
我们将致电我的申请Cat。
让我们说我正在创建一个名为Dog的库,它有点像Zend,并且充满了执行不同任务的不同组件(数据库类,DAL,路由器,用于确定哪些控制器可以从给定的URL中进行选择,等),并将位于root / library / dir。
我还将创建一个特定于应用程序的应用程序库,(可能包含类似FrontController或Application的类,以帮助启动和配置应用程序)。这将位于root / app / library /
中我想在这个应用程序和其他应用程序上使用Dog库,并希望它独立于Cat,因此它可以用于许多其他应用程序。
在我的Cat应用程序中,假设我创建了一个新的数据库对象。我应该写作:
$database = new Dog_Database();
或者拥有一个纯粹扩展Dog_Database类的Cat_Database类会更好吗?这意味着我可以稍后告诉Cat_Database在需要时扩展Ferret_Database ......
我想主要的问题是,我的应用程序是应该直接从共享库中调用内容,还是应该调用特定于应用程序的库类,如果需要,它们又会从共享库中扩展出来?
答案 0 :(得分:1)
我觉得你有点回答了自己的问题。你说你想让狗独立于猫。这意味着,对我来说,在两者之间使用大量的依赖注入而不是很多继承或直接调用。如果您想在框架的其他地方重用应用程序库,则无法使您的应用程序库从框架扩展类。
很难对像这样的广泛问题提出详细的建议。也许这些概念中的一些可以帮助你。