Php:功能风格,轻量级替代OO MVC模式中的关注点分离?

时间:2009-11-10 17:10:31

标签: php model-view-controller functional-programming separation-of-concerns

问题:

我有legacy php app coded in no particular style(一些OO,函数库,一些模板,没有模板),我正在慢慢地重写,清理和添加。

当我向系统引入模板时,很明显,由于html和php之间的分离,它会真正清理和简化代码。我在我的工作中使用过一个php MVC框架,我非常喜欢体现MVC概念的关注点的分离。但是,我不喜欢大型代码库引入的复杂性。我喜欢简单,当一个非常复杂的堆栈发挥作用时,无法处理无休止的嵌套调试。随着时间的推移,我越来越成为功能风格的粉丝,主要是由于对Clojure的调查。

我想有一个很好的方法来分离php中的问题,最好没有太多的面向对象的代码,并且没有太多的堆栈,因为我想转移到php的更多功能样式,因为我转移到php 5.3以及。

制定解决方案:

  • 没有大型/复杂的物体。
  • 用于调试的短堆栈。
  • 运行php 5.2,无论什么时候出现在debian中都无法升级到5.3,所以功能样式会很好,但5.3的工具可能暂时无法使用。
  • 一个干净的&简单的主题,以统一当前破碎的代码库。
  • 对当前代码的影响越小越好。

3 个答案:

答案 0 :(得分:2)

我无法保证,但我听说过有关Kohana

的一些好消息

答案 1 :(得分:2)

我知道这个问题很老了,但我刚刚发布了一个名为Bullet的功能风格的PHP微框架,听起来就像你正在寻找的那样。作为一个微框架,它不是真正的OOP,并且使用独特的功能方法进行路由使得它真正有趣并且与之不同。如果你还在用PHP编程,请试一试:)。

答案 2 :(得分:1)

如果您正在构建一个复杂的网站,像kohana这样的框架将会有很大帮助。对于更简单的网站,我不想使用框架。我选择了一个准确的“框架”,它基本上只是一个带有一些辅助功能的前端控制器。

前端控制器查看请求并决定加载哪个控制器/页面。加载的控制器/页面通过模型/任何内容获取所需的数据,然后加载模板。

request = / blog / 13 / i-like-birds 前端控制器查看请求并加载博客控制器 博客控制器获取帖子13所需的所有信息并加载博客模板。

但是,您应该使用哪种解决方案取决于网站的需求。