【发布时间】:2014-01-19 03:18:04
【问题描述】:
我必须使用 PHP 为我的朋友创建一个网站。它基本上是一个在线商店。
我想使用 HTML5、CSS3、jQuery 和其他 JS 库的新功能。
并且我想将所有文档生成和操作与 PHP 分开。
我在 Google 上进行了大量搜索。人们提出了 MVC 架构。这一切都很好。
但问题在于我发现的所有示例或教程;人们从基于 SQL 的数据库中检索数据,然后将其echo 或print 生成 html,或者使用一些 ORM 类来显示它。我不太了解 ORM 或 PHP 框架。
我一直在做宠物项目,小型网站,没有像这个中型商店。
我对 MVC 架构的理解是这样的:
**Model:** Basic purpose is to save and retrieve data from the databases.
**Controller:** Do some operations on the data to either store them using Model, or do some operations on the retrieved data (again using the Model), to be passed to the View.
**View:** This is used to display the user the content.
我想做的是使用 PHP 生成几乎为零的 html。
相反,我正在考虑一种方法:
模型仅用于数据库处理.
Controller 用于将这些数据转换为 JSON 对象,并使这些 JSON 对象可用于相应的视图。
然后使用 JavaScript 我将根据 JSON 对象进行 DOM 操作。
这种方法有什么好处吗?如果是怎么做(尤其是从数据库检索到的数据转换为 JSON 对象的部分)。
如果您能给我提供一个更好的方法,我不必使用 PHP 生成 html,并尽可能少地使用 PHP 作为前端。
我正在做用户会看到的所有前端工作。我的朋友将负责所有的数据库处理。我不想参与 PHP 部分,如果它是强制性的(即没有出路),那么尽可能少。
请给我一些解决方案。这里急需。
编辑:我特别在谈论echo 和print 命令。我想有一个新的工作,而不是让 html 创建与 PHP 和 JavaScript 混合。
如果不使用这些命令,则基于用户可能在移动设备上或关闭 JavaScript 的事实不建议使用。如果关闭 JavaScript,是否有可能拥有一个外观简单的网站并显示所有数据?如果它没有关闭,则从 DOM 中删除所有这些元素并使用 JavaScript 制作一个新的 DOM。然而,这样做的主要障碍是将从数据库检索到的数据转换为 JSON 对象,以便 JavaScript 可以使用它。
我不认为这是可能的,但是有什么方法可以让 JavaScript 直接使用 PHP 变量吗?
【问题讨论】:
-
嗯...DOM 在客户端上(除非您使用专用的 DOM-on-server 库,但似乎并非如此)。 PHP 在服务器上。您究竟是如何不将 DOM 操作与 PHP 完全分开的?!
-
PHP 不操作 DOM。它只是定义了它的初始结构。你的方法会有很多很多问题。如果禁用了 javascript 或客户端是低规格的移动设备怎么办?如果您真的打算创建一个在线商店,请使用一些 FOSS 电子商务包并使用它。它会为您省去很多麻烦,并且您可能会在此过程中学到一两件事。
-
@Ishan,对,我实际上更喜欢通过 PHP 使用 DOM API,而不是尽可能多地这样做,但我猜这不是一种非常流行的方法。但是 print/echo 真的不是 DOM 操作,所以你的问题有点令人困惑。
-
@Ishan:那么你想将 PHP 与 HTML 生成 分开,而不是 DOM。
-
@Ishan 我认为如果您在问题中将“DOM”替换为“文档”会更准确。
标签: javascript php json dom model-view-controller