PHP关注点分离与MVC

PHP关注点分离与MVC,php,model-view-controller,separation-of-concerns,Php,Model View Controller,Separation Of Concerns,首先,我不确定这个问题是否适合某个版主的问题模型,如果不适合请关闭它 我最近读了很多关于MVC和SoC的书,以及它们与PHP编程的关系,我很难理解这些概念与我目前的编程风格有什么不同。我编写的任何应用程序都使用url_重写路由,路由由单个文件处理,该文件根据请求的子系统选择适当的controller.php文件。然后在该控制器文件中分配最终的smarty模板文件,并将包含相关页面的业务逻辑的PHP文件包含在堆栈中 我所面临的问题是,当我回顾MVC和SoC信息时,我看到的所有示例都是作为广泛的相互

首先,我不确定这个问题是否适合某个版主的问题模型,如果不适合请关闭它

我最近读了很多关于MVC和SoC的书,以及它们与PHP编程的关系,我很难理解这些概念与我目前的编程风格有什么不同。我编写的任何应用程序都使用url_重写路由,路由由单个文件处理,该文件根据请求的子系统选择适当的controller.php文件。然后在该控制器文件中分配最终的smarty模板文件,并将包含相关页面的业务逻辑的PHP文件包含在堆栈中

我所面临的问题是,当我回顾MVC和SoC信息时,我看到的所有示例都是作为广泛的相互依赖类和一些相当深的名称空间编写的,但当我编写代码时,我只使用需要对象来进行可重用但不同的代码的对象(与PHP站点上的对象示例一致),最后,一些代码被分类和命名,我的应用程序中有近70%仍然保留在全局名称空间中,没有分类。在我看来,这种编码技术仍然符合关注点分离的设计原则,尽管我不太确定是否是MVC,因为我能找到的每个MVC示例都是完全由大量的类构建的

请有人解释一下,我现在的编码是否偏离了基准,或者我是否实现了SoC,甚至可能实现了MVC,并向我解释一下,将整个应用程序嵌入到一系列类中是否是SoC和MVC的要求


谢谢

好的,我通常回答这些开放式问题:p

让我用一个新的问题来重新表述你的整个想法——请随意告诉我我错了

我想你是在问——“我的编码风格是否符合xyz的最佳实践?”

现在看——我担任过各种角色,我坚信从来没有人破解过一个完整的SoC体系结构——在某个点上,在让视图端的人完成他们的工作和让上游的人接收输入并使其工作以便与数据库和逻辑相联系之间总是有一个权衡

例如,我现在正在构建一个系统,它将HTML文件作为输入,通过PHP读取它们。PHP将HTML元素转换为一组JSON,并基于x、y和z向该JSON添加逻辑,然后将其推送到Facebook React组件中,当您向某人解释有一台香肠机,它将HTML作为输入,并输出HTML时,这些组件会将其全部转换回HTML/DOM,你可以看到他们为什么会去——天哪,你在干什么

现在——我们为什么要这样做?因为这对项目和团队都有意义。我们本可以同样使用一些预定义的框架和诸如此类的东西——但这对我们来说是可行的

(这里的一个警告是,如果您需要一个高性能的应用程序,那么这可能是错误的方法,但是–请记住您阅读的内容(相互依赖的类等)也可能没有性能–PHP代码的优化是一项艰巨的工作–我的建议是,首先让它工作起来,然后如果产品成功,请付钱给别人修复你的糟糕代码–服务器时间很便宜–你的时间不便宜)

我对你们的陈述是,如果没有具体的例子和用例,人们将很难对你们的方法发表评论,但要理解有很多不同的做事方式,你们可能会看到很多以这种或那种方式编写的开源代码,但如果你们写的东西实现了一个目标,你唯一关心的应该是它的性能,并且它有足够的分离度,这样你的设计师可以进行设计,你的程序员可以进行编码,你的CEO可以查看销售数据


希望这有帮助。

好的,我通常回答这些开放式问题:p

让我用一个新的问题来重新表述你的整个想法——请随意告诉我我错了

我想你是在问——“我的编码风格是否符合xyz的最佳实践?”

现在看——我担任过各种角色,我坚信从来没有人破解过一个完整的SoC体系结构——在某个点上,在让视图端的人完成他们的工作和让上游的人接收输入并使其工作以便与数据库和逻辑相联系之间总是有一个权衡

例如,我现在正在构建一个系统,它将HTML文件作为输入,通过PHP读取它们。PHP将HTML元素转换为一组JSON,并基于x、y和z向该JSON添加逻辑,然后将其推送到Facebook React组件中,当您向某人解释有一台香肠机,它将HTML作为输入,并输出HTML时,这些组件会将其全部转换回HTML/DOM,你可以看到他们为什么会去——天哪,你在干什么

现在——我们为什么要这样做?因为这对项目和团队都有意义。我们本可以同样使用一些预定义的框架和诸如此类的东西——但这对我们来说是可行的

(这里的一个警告是,如果您需要一个高性能的应用程序,那么这可能是错误的方法,但是–请记住您阅读的内容(相互依赖的类等)也可能没有性能–PHP代码的优化是一项艰巨的工作–我的建议是,首先让它工作起来,然后如果产品成功,请付钱给别人修复你的糟糕代码–服务器时间很便宜–你的时间不便宜)

我对你们的陈述是,如果没有具体的例子和用例,人们将很难对你们的方法发表评论,但要理解有很多不同的做事方式,你们可能会看到很多以这种或那种方式编写的开源代码,但如果你们写的东西实现了一个目标,你唯一关心的应该是它的性能