3

我的大多数项目都使用了一个有点原始的框架,但是我想到了一个通用的设计问题,我还没有解决。对于给定的应用程序,我应该将特定于应用程序的类结构与框架的结构分开,还是在框架之上构建不是一件坏事?

例如,假设我有一个带有基本 Controller 类的框架,并为我的应用程序的给定部分扩展了它。哪种安排最有意义,为什么?

类结构 A:

  • 调试时直观、易于查找源文件。
  • 文件命名/目录结构反映了类层次结构。
- Framework_Control“框架\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“框架\Control.php”
   - Application_Control_Index "Application\Control\Index.php"
   - Application_Control_Home "应用\控制\Home.php"
   - Application_Control_Contact "Application\Control\Contact.php"
   - Application_Control_About "Application\Control\About.php"

总的来说,我知道这将取决于个人喜好,但我想确保在决定走哪条路之前权衡所有利弊。它实际上归结为类命名和目录结构,因为在任何一种情况下,实际的层次结构都将保持不变。

4

2 回答 2

2

我建议您在两个不同的类别中查看您的源代码,外部依赖项或跨多个站点使用的代码,而不是任何单个站点的本地代码和本地依赖项或您正在处理的特定站点的本地代码.

听起来 Framework/Control.php 是更大的外部依赖项的一部分,应该这样管理,而 Application/Control 文件都是特定网站的本地文件。

在我们的代码结构中使用这种差异化使得在多个站点之间重用我们的内部框架变得更加容易。

作为最后的想法,您可能会考虑查看现有的主要框架正在做什么,例如 Zend Framework、Symfony 等。尽管整个框架可能比您想要的更多,但框架的结构可以提供很多关于 PHP 开发人员正在使用的常见良好实践的见解。

于 2008-10-21T01:51:07.473 回答
1

真正归结为当您在应用程序 XYZ 中更新 Framework\Control.php 时您将要做什么。您是否要返回应用程序 ABC 并进行相同的更改?如果这是一个严重的错误怎么办?

为了您所有项目的可维护性,我会选择您的第二个选项。

于 2008-10-20T23:58:37.247 回答