PHP应用程序的主要组件/层是什么?

时间:2009-02-14 02:36:52

标签: php oop frameworks software-design

PHP应用程序的主要组件是什么?我想出了这些:

  1. 数据库
  2. HTML模板
  3. 会话/曲奇/验证
  4. 用户输入($ _GET或$ _POST或网址片段)
  5. 这些是主要成分还是还有其他成分?

    我问这个的原因是我可以将每个'对象'放在自己的类中,而不必担心它在技术上是如何可行的。例如,我可以使用Post类,允许您将帖子添加到博客中,而不必担心它如何适应系统/ php语言的其他部分等。

3 个答案:

答案 0 :(得分:2)

这听起来很像this question

我强烈建议您查看Martin Fowler的企业应用程序架构模式。

我还建议您在此站点上搜索与模型或域以及对象关系映射或数据库抽象相关的问题。我碰巧知道有很多优秀的内容,尤其是关于PHP的内容。

我在这个问题中看到了你发布的两个问题。首先,网站的一般架构组件是什么。一般来说,你会在一些表现形式中拥有这三个:

  1. 数据库和数据库交互层
  2. Controller - 处理$ _GET和$ _POST(请求)并将内容分配给View并最终呈现它。
  3. 视图 - 应该只包含HTML和非常基本的代码,例如用于迭代集合和变量输出的循环。
  4. 我看到的第二个问题是在应用程序中处理特定业务对象的位置。这是讨论得到更多参与的地方,因为我假设你需要作为业务对象(在域内)和数据库表中的行与Posts进行交互。这两个问题都可以利用一个名为Active Record的模式包含在同一个类中,这个模式已经被Ruby on Rails推广。但是,根据所涉及的应用程序和数据库的复杂性,您可能需要考虑通过创建一个充当数据库交互层的Post类和另一个包含所有业务逻辑的Post类来将业务逻辑与数据库交互分离。 / p>

答案 1 :(得分:0)

我会添加一个数据访问层作为提供数据库接口的组件。

现有的模式可以解决这些类型的问题。并且有一些框架是基于您可能想要查看的模式构建的,其中大部分工作已经完成:

Cake PHP

Solar PHP

答案 2 :(得分:0)

听起来你想要某种模型 - 视图 - 控制器框架。遵循该模式的框架将所有数据库工作封装到模型中,将业务逻辑封装到控制器中,并将表示/模板封装到视图中。想到两个框架:

  1. CodeIgniter(个人最爱)
  2. Cake PHP
  3. 如果您走这条路线,您会发现MVC框架将帮助您在描述时分离数据。此外,这些系统往往具有大量插件或内置功能,可进一步封装诸如身份验证,会话管理,发布/获取数据等内容。