最佳 PHP 设计实践

9

好的,我有一堆问题在过去的几天里一直在思考。目前,我有一个网站,它只是一堆PHP文件,其中混合了PHP、HTML和CSS,基本上是一团糟。我被要求清理网站,并为自己制定了以下要求:

  • 网站需要高效且布局良好(源代码),我希望能尽可能少地编写代码。
  • 结构、表现和逻辑之间必须有良好的分离。
  • 由于某种原因,我不能使用框架,并且需要保持代码可维护性和“简单性”,因为将来会有其他开发人员与之合作。
  • 至少需要一个管理部分,用于管理几个页面。

说到这里,这就是我所知道的关于当前网站的情况:

  • 由10-12个页面组成,其中有几个完全静态,大多数是通过数据库动态驱动的,并且有一个巨大的表格供用户填写(20-30个字段),需要进行验证和检查。
  • 网站的层次结构基本上是5-6个主要页面,然后是这些页面内的子页面。

因此,了解这些内容,我想知道是否有人有任何建议,可以用最少的麻烦来做到这一点。

  • 在这种情况下,采用面向对象的方法是否最好?
  • 由于有许多静态页面,而动态页面只需要填写内容,是否最好使用某种基本模板?

编辑:感谢回答。当我说不能使用框架时,我基本上是指除PHP之外的任何新语法,因为接替我处理此网站的人可能只了解PHP。

3个回答

12

以下是关于如何组织你的PHP项目的文章,作者是PHP语言的创始人Rasmus Lerdorf:

http://toys.lerdorf.com/archives/38-The-no-framework-PHP-MVC-framework.html

尽管面向对象的框架在PHP中很受欢迎,但Rasmus主张采用更少面向对象的方法。他比任何人都更了解PHP的预期使用方式,并知道如何利用其体系结构实现高性能网站。

编辑:针对@theman的评论,我承认这篇文章并不是一篇优秀的作品,但我认为内容非常重要。与其努力使PHP适应面向对象的模式而抵抗它的弱点,不如按照其预期使用方式来使用它。


2
很抱歉,但那篇文章真的很糟糕。 - theman_on_vista
3
我也认为许多MVC框架太过臃肿(“看看我们的Hello World示例...仅需要11个文件!”)。 - cletus

2
我强烈推荐在所有PHP项目中使用Smarty模板引擎。它为您提供了一种将逻辑与表现分开的简单方法。请注意保留HTML标签。

0

看看这个 问题 和答案。这是一个相当不错的、简单的MVC设计,包括一些可以改进的技巧。如果您关心维护,那么至少需要将表现与逻辑分离(需要一个视图和控制器)。Smarty强制执行此操作,但它是一种框架类型,您需要学习额外的语法。

在你加入Rasmus的“没有框架php mvc框架”阵营之前,先看一些批评性评论。任何网站应用程序结构都是一个框架,而Rasmus的方法并不是我见过的最好的。


1
你能给出一个你认为是最好的框架的例子吗?我并不是在质疑你,我只是很感兴趣。 - Bill Karwin
对于 PHP, Kohana 最符合我的哲学。Zend Framework 的大部分组件都很有用,并且可以很容易地在 Kohana 中使用。 - rick
我希望我能够回应你的编辑,比尔。Rasums可能打算让 PHP 保持过程式风格,但是 PHP 5 是一种灵活的动态面向对象语言。 - rick
好的,感谢澄清。我认为Rasmus文章中的例子是一个概念验证,并且肯定需要一些清理。但我认为它解决了PHP框架在加载如此多的类时所面临的一些性能批评问题。 - Bill Karwin
顺便提一下,我在 Zend Framework 1.0 版本发布时担任了项目负责人。因此,我对 PHP 的面向对象能力非常熟悉,无论是其优点还是缺点。 - Bill Karwin
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接