使用Zend_Navigation为ZendFramework应用程序实现面包屑的最佳实践/建议/技术是什么?如何以及在哪里定义页面层次结构的最佳方法?
获取面包屑非常简单:
Zend_Navigation
在Zend_Registry
with键中注册您在引导程序(或其他位置)中创建的对象Zend_Navigation
.这样,对象将被所有导航视图助手捕获.
如果你正在使用新式Zend_Application
引导,你可以简单地使用Zend_Application_Resource_Navigation
资源来设置导航.只需设置resources.navigation.storage.registry = true
您的配置即可.
你可以简单地说
echo $this->navigation()->breadcrumbs()
在您的视图或布局脚本中.
谈到如何定义页面层次结构,我会说如果你有一个更小,更静态的站点,你可以简单地定义你的配置中的页面(当使用新的Zend_Application
-bootstrapping方法时):
resources.navigation.pages.home.label = "Home" resources.navigation.pages.home.action = "index" resources.navigation.pages.home.controller = "index" resources.navigation.pages.login.label = "Login" resources.navigation.pages.login.action = "login" resources.navigation.pages.login.controller = "users" resources.navigation.pages.users.label = "Users" resources.navigation.pages.users.action = "list" resources.navigation.pages.users.controller = "users" resources.navigation.pages.users.pages.show.label = "Show" resources.navigation.pages.users.pages.show.action = "show" resources.navigation.pages.users.pages.show.controller = "users" ...
或者,您可以使用额外的配置文件,也可以在前端控制器插件或操作助手中构建页面层次结构,例如,如果您具有相当大的站点结构,并且不希望在每个请求上实例化整个站点地图.这样,您还可以插入动态页面,其标签例如是基于请求参数动态创建的.
我发了2个帖子.
http://blog.ekini.net/2009/05/25/zend-framework-making-the-built-in-breadcrumb-helper-work/
http://blog.ekini.net/2009/06/10/zend-framework-navigation-and-breadcrumbs-with-an-xml-file-in-zf-18/
两者都来自现实世界的经历.对我来说,XML文件更容易理解.