1

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

  1. 数据库
  2. HTML 模板
  3. 会话/Cookies/身份验证
  4. 用户输入($_GET 或 $_POST 或 URL 段)

这些是主要成分还是有其他成分?

我问这个的原因是我可以将每个“对象”放在自己的类中,而不必担心它在技术上的可行性。例如,我可以有一个 Post 类,它允许您将帖子添加到博客,而不必担心它如何与系统/php 语言的其余部分相匹配等。

4

3 回答 3

2

这听起来很像这个问题

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

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

我在您发布的这个问题中看到了两个问题。首先,网站的一般架构组件是什么。通常,您会以某种形式出现这三个:

  1. 数据库和数据库交互层
  2. 控制器 - 处理 $_GET 和 $_POST(请求)并将内容分配给视图并最终呈现它。
  3. 视图 - 应该只包含 HTML 和非常基本的代码,例如用于迭代集合和变量输出的循环。

我看到的第二个问题是在应用程序中处理特定业务对象的位置。这是讨论涉及更多的地方,因为我假设您需要与 Posts 交互,既作为业务对象(在域内),又作为数据库表中的行。这两个问题都可以使用一种称为 Active Record 的模式封装在同一个类中,该模式已被 Ruby on Rails 推广。但是,根据所涉及的应用程序和数据库的复杂性,您可能需要考虑通过创建一个充当数据库交互层的 Post 类和另一个包含所有业务逻辑的 Post 类来将业务逻辑与数据库交互分离。

于 2009-02-14T03:55:37.710 回答
0

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

现有的模式可以处理这些类型的问题。还有一些基于这些模式构建的框架,您可能想看看,其中大部分工作已经完成:

蛋糕 PHP

太阳能 PHP

于 2009-02-14T03:09:01.893 回答
0

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

  1. CodeIgniter(个人最喜欢的)
  2. 蛋糕 PHP

如果您走这条路,您会发现 MVC 框架将帮助您按照您的描述分离数据。此外,这些系统往往有很多插件或内置功能,可以进一步封装身份验证、会话管理、发布/获取数据等内容。

于 2009-02-14T03:39:11.523 回答