简单的php框架的最佳类结构是什么?

时间:2009-04-27 19:29:23

标签: php

我正在尝试创建简单的php框架。但是我不确定类结构,例如哪些类应该扩展到哪些类。我知道一些基本类如Router,View类必须访问一些基本数据如请求的URL或请求的ccontroller和动作,所以如何将基本数据导入这些类。如果我的问题不明确,请解释你自己的关于framework的实验和想法。如果你知道请谈谈已知的framewoks,如zend,cakephp或symfony

3 个答案:

答案 0 :(得分:1)

没有最好的班级结构。取决于你想要做什么。你的意思是最纯粹的MVC设计吗?最可测试的?最容易理解的?

答案 1 :(得分:1)

有一条简单的经验法则:

  • 您需要标准框架无法实现
  • 或者你应该使用一个能够满足你需要的标准框架。

在第一种情况下,限制将是您设计中的驱动因素。

框架中的类结构没有通用的设计规则。但是如果你决定自己写一个,请尽量记住这一点:

  • 最小化模块之间的依赖关系
  • 始终尝试提供默认值
  • 尽量减少开销
  • 与同行谈论很多事情以便及早发现缺陷。

答案 2 :(得分:0)

如果你从未在别人的框架中工作,你将不知道哪些想法适合你,哪些不适合你。如果你只使用过分散的意大利面条代码,那么你就会知道什么对你有意义。如果您已经在多个不相关的项目中对重新组织的意大利面条代码进行了大量的重新组织,那么您应该对构建框架的方式有一个很好的了解。 : - )

如果你不清楚你想如何编写一个框架,但是你想编写一个框架,我认为你需要从零开始并有机地构建它。但是,你应该知道你希望它看起来如何,即使它像你想要包含文件的生活一样愚蠢。换句话说,您所需要的只是一个起点。然后,当你遇到丑陋时,这是一个重新考虑丑陋的问题。不久之后,你将拥有一个数据库处理程序,一个调度机制,也许是一个数据访问层,甚至可能是一个模板系统!

回应@MrFox,您应该了解危险的依赖性。显然,数据访问层将依赖于数据库处理程序;所以你想要的是你的数据库处理程序依赖于你的数据访问层。事实上,你也不希望他们对彼此有深入的了解。它应该是一个合理的“黑盒子”界面。

此外,许多框架尝试构建“一个”对象层次结构。这意味着他们认为Action是一个模型是一个数据库处理程序。我个人对这种误用的抽象有个问题,所以如果它对你不起作用的话,不要害怕抛弃这个想法。正如@Tyndall所说,没有一种单一的“正确”方式可以做到这一点。