PHP模板类和表示逻辑?

时间:2013-01-27 07:55:58

标签: php design-patterns controller presentation front-controller

我研究过Front Controller模式。我确信我将把这个模式用于即将开展的项目。我还没有编写代码,但是,如何为我的网站使用表示逻辑?如果我想在用户登录时以及用户具有某些权限时显示某些信息,该怎么办?如果某个表单需要数据库中的数据才能工作怎么办? (对于后者,我想用AJAX调用相应的控制器并以这种方式加载数据,但我不知道是否有更有效的方法)这让我有点困惑,我想尽可能避免使用框架像Smarty或CakePHP。先谢谢你。

编辑:我正在考虑使用模板控制器类,这是一个类,其负责任务是加载某些网页并显示它们,从前端控制器调用。我的主要问题是在调用模板页面时从数据库加载数据。如果表单需要数据库中的数据怎么办?我是否必须依赖AJAX来加载数据,或者是否有办法告诉模板在保持图层分离的同时加载数据?

1 个答案:

答案 0 :(得分:0)

我想我得到了答案。我还没有测试过这个,但我想我可以这样做。

首先,HTML5有the capability to add custom data attributes to each tag。考虑到这一点,我可以执行以下操作,因为我们有一个targetController类,其方法名为foo(),前端控制器将“Controller”附加到每个请求:

<select data-target="target" data-action="foo">
</select>

这样我可以在文档渲染之前调用某个控制器并调用某个动作!现在,我不是通过常规方式包含模板,而是通过a DOM library加载它们,它将控制器加载到前端控制器作为常规请求或通过可能执行控制器加载的类。这样我就不必依赖javascript来做任何事情。一旦我开始工作,我肯定会测试这个解决方案!