【问题标题】:Architecting a PHP application from procedural to Object Oriented [closed]从过程到面向对象构建 PHP 应用程序 [关闭]
【发布时间】:2012-11-15 11:58:26
【问题描述】:

我正在开发一个以 php 编程方式编写的 CMS 应用程序。但是现在随着新功能的添加,应用程序的某些部分变得难以处理。它已经到了一个复杂的阶段并且我们需要尊重复杂性
所以,现在我们计划使用面向对象的编程风格来构建它,这在控制方面是一种更好的方法。但是,它很难做到从哪里开始?
我的意思是,哪些部分将转换为类,模型部分到底是什么,而且我希望能够管理对应用程序控制的集中控制,因为它是一个 CMS,它将创建域和子域。
我很清楚的一点是数据库类将需要选择、更新、插入、删除功能和连接详细信息,但其他模块如 登录/注册、付款流程,使用模板的电子邮件功能、日志记录和调试、异常处理(Messa ges 代表成功和失败)。将它们转换为类会有所不同吗?
是否有任何框架或 CMS,(尝试参考 wordpress/codeignitor,但我只能采用其中的几个功能)我可以参考哪个做这样的事情? 我知道这有点描述性,但我是面向对象的 php 编程的新手,我从未构建过任何应用程序。这是一个学习过程,我希望得到专家的建议/意见,因为我早先做了一个决定
感谢您的宝贵时间

【问题讨论】:

  • 试试Symfony2吧,它学起来并不容易,但最后当你把所有的代码都重构成包时,维护起来会容易得多。
  • @TomaszKowalczyk 我想要一些简单的东西,因为学习曲线会妨碍时间。我可以理解它会在一段时间内有所帮助,但我们正在尝试构建根据我们的要求定制的东西,也许是写作我们自己的类,但是通过使用一些参考作为框架 bcoz 没有必要重新发明已经完成的内容。对吗?
  • “使用框架” 甚至没有远程回答这个问题。
  • @rdlowrey 你总是可以为你不知道的应用程序的类结构布置UML。为什么要重新发明轮子?
  • @E_p 流行的框架是 OOP 的一个不合标准的例子。它们是 MVC 的一个糟糕示例。 UML 类结构与框架无关。您不应该重新发明轮子,但也不应该使用您不理解的第三方代码。此外,框架在 PHP 领域是一种感染。我会考虑阅读 ircmaxell 的文章,Framework Fixation - An Anti Pattern,因为在这个评论区他比我更有说服力。

标签: php oop frameworks content-management-system procedural-programming


【解决方案1】:

选择任何主要的 PHP 框架 ZendFramework、Symfony、Silex、Slim ... 并在这些框架上构建您的 CMS。这些框架已经拥有您需要的大部分组件。此外,他们拥有庞大的社区,因此您不必维护该代码。

如果您仍然想编写自己的框架。查看http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller 处理请求。 无需创建 DB 类,因为 PDO http://php.net/manual/en/book.pdo.php 是一个不错的内置抽象层,您可以使用。

【讨论】:

  • 谢谢。我不确定每个人的学习曲线是怎样的。如果可能的话,我会经历所有的事情,但我想保持简单,尝试一些与我非常接近的东西我正在寻找。
  • 告诉不了解 OO 设计的第一件事的人使用框架是我认为“非常糟糕的建议”。
  • 最好让他们破坏生产中的项目。
  • 最好不要让不知道自己在做什么的人编写任务关键型软件。
  • 用更通用的答案更新了我的帖子
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-22
  • 1970-01-01
  • 1970-01-01
  • 2014-06-04
  • 2015-04-28
  • 2023-03-23
相关资源
最近更新 更多