Php 如何使用Zend_导航实现面包屑

Php 如何使用Zend_导航实现面包屑,php,zend-framework,navigation,breadcrumbs,Php,Zend Framework,Navigation,Breadcrumbs,使用Zend_导航为ZendFramework应用程序实现面包屑的最佳实践/建议/技术有哪些?如何以及在何处定义页面层次结构的最佳方法?获取面包屑非常容易: 在Zend_注册表中的Zend_导航项中注册您在引导程序(或其他位置)中创建的Zend_导航对象。这样,对象将被所有导航视图帮助器捕获 如果您正在使用新的Zend_应用程序风格的引导,您只需使用Zend_应用程序(资源)导航资源即可设置导航。只需在配置中设置resources.navigation.storage.registry=tru

使用Zend_导航为ZendFramework应用程序实现面包屑的最佳实践/建议/技术有哪些?如何以及在何处定义页面层次结构的最佳方法?

获取面包屑非常容易:

  • Zend_注册表中的
    Zend_导航
    项中注册您在引导程序(或其他位置)中创建的
    Zend_导航
    对象。这样,对象将被所有导航视图帮助器捕获
  • 如果您正在使用新的
    Zend_应用程序
    风格的引导,您只需使用
    Zend_应用程序(资源)导航
    资源即可设置导航。只需在配置中设置
    resources.navigation.storage.registry=true
  • 然后你可以简单地

    echo $this->navigation()->breadcrumbs()
    
    在视图或布局脚本中

谈到如何定义页面层次结构,我想说的是,如果您有一个更小、更静态的站点,您只需在配置中定义页面(当使用新的
Zend_应用程序时)
-bootstrapping方法):


或者,您可以使用一个额外的配置文件,或者您可以在front controller插件或action helper中构建页面层次结构,例如,如果您有一个相当大的站点结构,并且不想在每个请求上实例化整个站点地图。这样,您还可以插入动态页面,例如,其标签是根据请求参数动态创建的。

我在这方面发表了两篇文章


两者都来自现实世界的经验。对我来说,XML文件更容易理解。

答案很好。我们有一个控制器插件,为整个站点生成导航容器,并为后续请求缓存它。不过,我绝对推荐小型站点使用配置解决方案。我发现使用Zend_config_XML和用于导航配置的XML文件是一种顺利的方法。谢谢,谢谢法扎德。尽管INI写起来比较短(没有结束标记等),但我发现XML文件更容易理解和实现。
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"
...