2012-07-23 60 views
3

当您的网站使用MVC模式时,有什么动态标题的最佳方式?MVC和动态标题

我见过一些框架在控制器中设置标题,例如$seo->setTitle('Title here...'),但是当您想要在产品页面上使用动态标题时,您希望标题中的产品名称不太好。

我正在考虑有一个SEO对象,在控制器中创建它,并在构造函数中有页面名称,并通过使用提供的页面名称,对象内的方法检索并设置pageTitle和desciption属性。

它会被认为是不好的做法或违反MVC的规则?如果是的话,什么是更好的方法?谢谢。

回答

3

页面标题的生成是表示逻辑的一部分,因此它应该在MVC设计模式的视图部分进行处理。请注意,View不是愚蠢的Template。相反,视图应该负责应用程序中的所有表示逻辑,并能够处理多个模板。

其余依赖于您尝试应用哪种MVC风格的模式。在Model2 MVC和HMVC模式视图处于活动状态,并且可以从模型层请求信息。如果实现MVP或MVVM,它们包含一个被动视图,它从控制器获取信息。

+0

因此,在我的head.php视图文件中有一个像getTitle($ pageNameHere)这样的函数,它将返回该页面所需的页面标题?在我的MVC中,视图文件可以访问模型。 – David 2012-07-23 00:25:40

+0

是的,“View”实例拥有这样的方法是有意义的。但是'head.php''听起来更像是我的模板。 – 2012-07-23 00:49:14

+0

好的,谢谢,你是什么意思,这听起来更像是一个模板?在我的意见文件夹我有一个/常见的文件夹,并在那里我有head.php,header.php和footer.php。它们包含在$ view-> render()方法运行时。有什么不对? – David 2012-07-23 00:54:54

1

我看不出有什么不妥做

$seo->setTitle($productName . " page title...."); 

的$产品名称变量可以很容易地使用。