【发布时间】:2014-06-06 16:30:33
【问题描述】:
我刚刚开始使用 PHP 进入 MVC,并且对 CodeIgniter 和 CakePHP 之类的东西感到很困惑。我有兴趣了解人们对以下问题的处理方式:
通常,当我过去使用 CMS 构建网站时,我会通过在我的数据库中拥有一个核心 URI 表来接近它。每个 URI 都是唯一的,代表我网站上的一个页面(例如,www.example.com/about 将引用我的 URI 表中的一条记录,其中 'about' 作为唯一 URI)。 URI 表还包含一个 'type' 列,它告诉系统它是什么类型的页面(例如,splash、basic、gallery 或其他)。每个“类型”在我的数据库中都有一个对应的表,其中包含该类型记录的所有数据(例如,我将有表:基本、图库和启动)。该类型还告诉系统要加载哪个模板/页面处理程序,而哪个模板/页面处理程序又会为每种页面类型执行所需的操作。
因此,如果您访问 www.example.com/about,我的系统会在我的 URI 表中查找带有 URI 'about' 的记录,发现它的类型是 'basic',因此它会加载使用的基本模板/页面处理程序我的数据库中用于加载和呈现页面的基本表。在 CMS 中,我采用了类似的方法,我将在我的页面管理器中添加/编辑所有不同类型的表单。
我想知道您将如何使用诸如 CodeIgniter 之类的 MVC 框架来解决这个问题?我本质上想在正面和背面为每种类型的页面使用不同的控制器。但是,当有人访问我的站点时,他们最终会使用一个单一级别的 URI,因此我需要检查页面的类型并将其传递给正确的控制器。有没有一种方法你会推荐检查每个页面的类型,然后加载相关的控制器来完成剩下的工作?
【问题讨论】:
标签: php codeigniter