【发布时间】:2013-01-27 07:55:58
【问题描述】:
我研究过前端控制器模式。我确信我将在即将到来的项目中使用这种模式。我还没有编写代码,但是,如何为我的网站使用表示逻辑?如果我想在用户登录并且用户具有某些权限时显示某些信息怎么办?如果某个表单需要数据库中的数据才能工作怎么办? (对于后者,我想用 AJAX 调用相应的控制器并以这种方式加载数据,但我不知道是否有更有效的方式)这让我有点困惑,我想尽可能避免使用框架像 Smarty 或 CakePHP。提前谢谢你。
编辑:我正在考虑使用模板控制器类,这是一个负责加载某些网页并显示它们的类,从前端控制器调用。我的主要问题是在调用模板页面时从数据库加载数据。如果有一个表单需要数据库中的数据怎么办?我是否必须依靠 AJAX 来加载数据,或者有没有办法告诉模板加载数据同时保持图层分离?
【问题讨论】:
-
尝试使用框架进行测试。 smarty 是一个模板引擎。 CakePhp 是一个框架
-
您要构建自己的类似 MVC 的框架吗?作为一个完全做到了我可以说的人,这是很多工作。根据您的需要,前端控制器应包含与不同场景或“工作流程”相关的方法。这些方法取代了单独的“页面”,例如
login.php和account.php。 -
@Gordon:更像是一个框架,我会说它是一个引擎。但是,我对您的回答很感兴趣,您能否详细说明控制器和页面如何协同工作?我在想我应该创建一个模板控制器类并从那里显示网页,但现在我很感兴趣!
-
嗯,听起来您打算将工作委托给另一个班级。除了选择要使用的模板之外,模板控制器会做什么?我还认为您可以根据进入视图的数据来摆脱等式的“用户权限”部分,即如果用户具有权限,则显示一些元素。
-
...其实这是我的问题。模板控制器加载一个网页并显示它,仅此而已。也许我可以使用
$_SESSION变量和在相应位置嵌入条件来控制某些条件,但除此之外我不知道该怎么做,尤其是当我需要数据库中的数据来加载表单时,例如,没有依赖 AJAX。
标签: php design-patterns controller presentation front-controller