“首页”在MVC中的位置在哪里?

时间:2010-12-09 00:42:34

标签: php model-view-controller

我想我得到了MVC的基本概念,但我不知道应该把我的“主页”放在哪里?我的意思是,例如,如果您导航到stackoverflow.com而不是像stackoverflow.com/questions这样的页面会出现一个附加了明显控制器(“问题”控制器)的页面。

我有一个函数可以根据GET变量确定要使用的控制器,但是我不太确定当该变量丢失时该怎么办。我正在考虑为“默认路径”添加一个define(),但我不确定要使用什么。主页面将属于一个页面类别,但将是它自己的separte实体。使用stackoverflow作为示例,我可以将首页路由到“问题”控制器,但不知道将什么用作动作。“questions / frontpage”对我来说似乎是一个坏名字。

奇怪,但我没有在网上看到任何MVC教程。

5 个答案:

答案 0 :(得分:3)

您通常会使用 home 控制器。

如果您在引导程序类型文件中设置了基本路由,只需指向空白$_SERVER['REQUEST_URI']或类似于您的家庭控制器。

答案 1 :(得分:1)

大多数MVC框架映射控制器而没有为控制器中的“index()”函数指定“action”,这是某种默认行为。

在Kohana的情况下,打电话给

http://mysite.com

实际上映射到“默认控制器”(在配置文件中指定,您可以根据需要命名控制器)和控制器内的“index()”函数。

答案 2 :(得分:0)

大多数MVC框架都为路径'/'定义了某种默认路由。你可以调用控制器,无论什么都有意义;如果没有别的,那么“主要”或“默认”工作正常。我通常称之为任何控制器“索引”的“首页”。

答案 3 :(得分:0)

嗯,它可能是任何东西。你通常使用Symfony或Zend,我有一个名为defaultcore的模块/控制器,一般来说主页是该模块/控制器中的index动作。然后在我的路由配置中,我使用'/'或其他任何路由URL指定为默认路由。

答案 4 :(得分:0)

默认页面默认为“index.html”。 如果您的根“www”目录中有“index.html”,那么如果请求网址上只有网站地址,则会显示该页面。

您可以调整apache配置文件(不确定ASP)以使另一个页面或脚本成为默认值,或者进行索引。(php | jsp | *)是您的默认值。

取决于环境,但我通常会建议您有一个静态的“index.html”页面,其中包含指向您网站动态部分的链接。