在单个PHP脚本中将代码与视图分开


Separate code from view in single PHP scripts

我有一个用PHP文件编写的整个应用程序。每个文件自己处理操作、数据库访问和html打印。几年过去了,我学习了MVC,框架等等。我打算转售这个应用程序,并进行一些改进,其中大部分是视觉上的改进,但我们谈论的是近70个文件要编辑!

是否有一种方法,例如,将每个文件分成控制器和视图,这样我就可以以更清晰的方式编辑视图?此外,这样做将允许我迁移到CodeIgniter。

PHP已经是模板语言了。相反,你应该使用那里的东西来创建简单的模板,而不需要任何花哨的第三方工具。这将让你把你的HTML从其他代码中分离出来。

另外,我建议将数据库交互与应用程序的核心逻辑分开。

如果你有一个工作的应用程序,那么不要在它上面放一个框架。框架是提高初始开发速度的工具。但这款应用已经出现了。现在您将只得到框架的缺点,而没有任何优点。

对于MVC来说,它是一种架构设计模式。框架不实现MVC。你的代码可以(或者不可以)。要理解MVC,你首先需要很好地理解面向对象的原则和实践(SOLID, SoC, LoD, DI)。仅仅因为你添加了一个框架,它不会神奇地"添加mvc"到你的代码。这不是什么酱汁。

最后,我强烈建议你远离CodeIgniter和CakePHP。它们是PHP中最糟糕的两个框架。它们包含许多不好的实践,例如:全局状态、php4工件、构造函数中的计算、模式的错误命名和关注点分离的破坏。

它们没有实现MVC或任何MVC启发的设计模式,相反,它们只是为PHP重写的坏Rails。

使用模板引擎,查看以下选项:

http://www.smarty.net/

https://github.com/bobthecow/mustache.php

或者使用codeigniter

这样的框架http://ellislab.com/codeigniter/