在开始一个新项目时,我总是被这个问题所困扰。当我查看像Mephisto,Typo等的例子时,他们将根路由到与特定资源/模型相关的控制器。
我的问题是,几乎我建立的每个网站,我觉得我的头版实际上是我所有模型的合作,我不能看到自己指向与特定的一个相关的控制器我的目标网页。
是否有人倾向于创建专门用于网站前端的控制器?或者,如果我认为这完全错了,请告诉我。
编辑:
这就是我的困惑所在:
rboard's routes将root映射到名为index的控制器...但我甚至找不到索引控制器
mephisto's routes使用了一些custom routing的东西,没有root甚至是map.connect到'/'
radiant's routes大部分应用程序都转到一个控制器,然后做一些疯狂的魔法
track's routes转到一个与资源相关的控制器(这是一个最接近我上面描述的例子)...但不适合我,因为正如我所说,我的根源往往有很多东西
spot us实际上做了类似于我的事情,有一个只有一个节目动作的家庭控制器,这是我的头版。
答案 0 :(得分:10)
我的问题是,几乎每个网站 我曾经建造过,我觉得我的前线 页面实际上是一个合作 我所有的模特,我都看不到自己 指向一个控制器 与我的一个特定的相关 登陆页面。
完全。所以你所做的是正确的。
我经常制作两个控制器,用于与不常用的REST东西进行交互:'welcome'和'dashboard'。欢迎控制器映射到我的站点的根目录,“仪表板”控制器类似,但对于已登录的用户。
答案 1 :(得分:6)
是否有人倾向于创建专门用于网站前端的控制器?或者,如果我认为这完全错了,请告诉我。
简短回答是“是”。
对于它的价值,我通常采用类似于Spot.Us的方法,并定义一个带有索引操作/视图的HomeController,并将其留在那里。
答案 2 :(得分:2)
不确定这是否是您正在寻找的答案,但这就是我所做的。我通常使用两种控制器类型的组合,一种是Front Controller和Action控制器。 Front Controller负责URL路由并确定要采取的操作,而Action Controllers则提供实际功能。这与Zend Framework的做法类似。
话虽如此,我将通过前端控制器管理所有流量,包括首页流量。我通常有一个名为“IndexController”的动作控制器来处理杂项页面请求,并且通常首页属于该类别(以及隐私政策页面,联系表格等)。
如果页面与网站的任何业务域逻辑没有特别关联,我倾向于将其放在我的索引操作控制器下,尽管我努力尽可能地将网站功能分组。
答案 3 :(得分:0)
SiteController对我来说似乎是最好的名字。 SiteController将包含您最重要的操作索引,而我的SiteController始终包含其他操作,如contact,about等。