Php:面向对象MVC模式中分离关注点的功能风格、轻量级替代方案?

Php:面向对象MVC模式中分离关注点的功能风格、轻量级替代方案?,php,model-view-controller,functional-programming,separation-of-concerns,Php,Model View Controller,Functional Programming,Separation Of Concerns,问题: 我有一个例子,就是(一些OO,函数库,一些模板,没有模板),我正在慢慢地重写,清理,并添加到其中 当我将模板引入到系统中时,很明显,由于html和php之间的分离,这将真正清理和简化代码。我在工作中使用过php MVC框架,我非常喜欢体现MVC概念的关注点分离。然而,我不喜欢大型代码库所带来的复杂性。我喜欢简单,当真正复杂的堆栈开始工作时,我不能很好地处理无休止的嵌套调试。随着时间的推移,我越来越喜欢功能性风格,这主要是因为对功能性风格的调查 我希望有一个很好的方法来分离php中的关注点

问题:

我有一个例子,就是(一些OO,函数库,一些模板,没有模板),我正在慢慢地重写,清理,并添加到其中

当我将模板引入到系统中时,很明显,由于html和php之间的分离,这将真正清理和简化代码。我在工作中使用过php MVC框架,我非常喜欢体现MVC概念的关注点分离。然而,我不喜欢大型代码库所带来的复杂性。我喜欢简单,当真正复杂的堆栈开始工作时,我不能很好地处理无休止的嵌套调试。随着时间的推移,我越来越喜欢功能性风格,这主要是因为对功能性风格的调查

我希望有一个很好的方法来分离php中的关注点,最好不要太多面向对象的代码,也不要太多的堆栈,因为我希望在迁移到PHP5.3及更高版本时,迁移到一种更具功能性的php样式

制定解决方案:

  • 没有大型/复杂的对象
  • 用于调试的短堆栈
  • 运行PHP5.2,在debian中出现之前无法升级到5.3,所以功能风格很好,但5.3的工具可能暂时无法使用
  • 一个干净简单的主题,用于统一当前断开的代码库
  • 对当前代码的影响越小越好

我不能担保,但我听说过一些关于它的好东西,我不能担保,但我听过一些关于它的好东西,如果你正在构建一个复杂的站点,像kohana这样的框架将非常有帮助。对于更简单的网站,我不喜欢使用框架。我使用的是一个简单的“框架”,它基本上只是一个带有一些辅助功能的前端控制器

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

请求=/blog/13/i-like-birds 前端控制器查看请求并加载博客控制器 博客控制器获取第13篇文章所需的所有信息,并加载博客模板


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

如果您正在构建一个复杂的站点,像kohana这样的框架将非常有用。对于更简单的网站,我不喜欢使用框架。我使用的是一个简单的“框架”,它基本上只是一个带有一些辅助功能的前端控制器

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

请求=/blog/13/i-like-birds 前端控制器查看请求并加载博客控制器 博客控制器获取第13篇文章所需的所有信息,并加载博客模板


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

我知道这个问题已经很老了,但我刚刚发布了一个功能式PHP微框架,名为,听起来它正是您想要的。作为一个微观框架,它不是真正的OOP,使用一种独特的功能性路由方法使它非常有趣,并且与之不同。如果您仍然使用PHP编程,请尝试一下:)。

我知道这个问题已经很老了,但我刚刚发布了一个名为的函数式PHP微框架,听起来它正是您想要的。作为一个微观框架,它不是真正的OOP,使用一种独特的功能性路由方法使它非常有趣,并且与之不同。如果您仍在使用PHP编程,请尝试一下:)。

没有太多可添加的内容,但具有讽刺意味的是,我管理过的一些最成功的维护都是“经典”JSP或PHP,其中包含数据库和混合在HTML/XML/任何内容中的函数调用。引入大堆栈也会带来问题。碰巧我也在做同样的事情。就我个人而言,我选择使用Kohana作为“最佳实践”的初始框架/指南,并正在慢慢地按照他们的MCV模式重建网站。我选择Kohana仅仅是因为当我在引擎盖下看的时候它“有意义”,而且它与当前的代码库非常接近(我不想在有更多有前途的前端工作要做的时候花2年时间来搞乱后端),没有太多要添加的内容,但具有讽刺意味的是,我管理过的一些最成功的维护都是“经典”的JSP或PHP,其中的DB和函数调用混合在HTML/XML/中。引入大堆栈也会带来问题。碰巧我也在做同样的事情。就我个人而言,我选择使用Kohana作为“最佳实践”的初始框架/指南,并正在慢慢地按照他们的MCV模式重建网站。我选择Kohana仅仅是因为当我从引擎盖下看的时候它“有意义”,而且它与当前的代码库非常接近(我不想在有更多有前途的前端工作要做的时候花2年时间来处理后端)。Kohana很酷,但鉴于OP说他不想要OOP或MVC,我不知道它是如何应用的……我下载了它,并将不得不检查代码,因为,谁知道,这可能是一个很好的方向改变,尽管这不是我希望下一步的FP方向。我想我会有一个建议。科哈纳很酷,但鉴于OP说他不想要OOP或MVC,我不知道它是如何应用的……我下载了它,并将不得不检查代码,因为,谁知道,这可能是一个很好的方向改变,尽管这不是我希望下一步的FP方向。耸耸肩,我想我会给你一个建议。我很难说