我即将开始我的第一个PHP项目 - 为一个小型非营利组织建立一个新网站.来自.Net和Java背景,面向对象编程对我来说非常自然,但我不确定它是否适合在PHP中建立一个中等复杂度的网站.我的理解是,大多数基于PHP的站点主要使用非OO代码编写.
对于一个Web 应用程序,我肯定会走OO路线,但对于一个相当简单的网站,我不太确定.该网站将包含大约五个部分,每个部分有一到四个内容页面,包含文章,新闻,图片库和一些表格.没有涉及复杂的交互(除了一些非常简单的Web表单,用于编写文章,注释,注册等),并且不需要维护状态(登录除外).MySQL将用于数据存储.
代码实际上并不需要特别可扩展 - 这不是我们正在讨论的企业网站或模板引擎 - 但重要的是代码对于具有相当数量的程序员来说相当容易理解PHP经验.我猜大多数PHP程序员都不习惯OO代码,所以也许这是支持程序代码的一点?
支持OO的一个方面是在数据库级别中将存在不同类型的文章,这些文章基于包含大多数属性的超类型,当然这些文章非常自然地转换为OO代码.
也许某种混合方法最好,使用对象来表示"业务对象"等,但使用传统的过程代码呈现HTML等?
评论非常感谢.--Rolf
Gor*_*don 11
但对于具有大量PHP经验的程序员来说,代码相当容易理解是非常重要的.
代码的可读性与编程范式无关,而与代码的编写方式有关.我已经看到了我的意大利面条OOP(包括我自己)的公平份额,我看到了相同数量的程序混乱.如果代码写得很好,即使没有相当数量的PHP知识的人也应该能够遵循.
我猜大多数PHP程序员都不习惯OO代码,所以也许这是支持程序代码的一点?
我怀疑这一点.我去过很多会议,似乎没有人在OOP上遇到任何问题.事实上,我甚至没有看到一行程序代码.此外,所有主要框架都是完整的OOP.您将在PHP4应用程序和查看新手代码时找到程序范例.
但是要回答你的问题:如果那是你和你的开发人员所熟悉的,我会说使用OO.就个人而言,我发现View部分中的过程代码是一个坏主意,因为您可能最终会为完全不可维护的模板混合逻辑和表示代码.有关更易于维护的方法,请参阅POEAA的Web演示模式.
如果你觉得它太大了,你不必使用MVC.如果您愿意,请使用页面控制器.但话说回来,MVC也难以实现,而且有很多框架可以让你的工作首当其冲.