Php Zend框架中的生成菜单

Php Zend框架中的生成菜单,php,zend-framework,Php,Zend Framework,我是ZF的新手,即使是简单的任务我也有问题 我想有动态生成的菜单上的每一页。为此,我应该用数据填充$this->view。好的,但要做到这一点,我必须在我制作的每个控制器中分别填充视图。这将导致代码重复 我看到的最自然的解决方案是为我的所有控制器创建基本控制器类,但我读到,这在ZF中不是一个好的实践。那我该怎么做呢?即使它只是一行重复的代码(例如,$this->view->menu=$reusableObject->generateMenuData()),我也不喜欢它 这种解决方案的最佳实践是什

我是ZF的新手,即使是简单的任务我也有问题

我想有动态生成的菜单上的每一页。为此,我应该用数据填充
$this->view
。好的,但要做到这一点,我必须在我制作的每个控制器中分别填充视图。这将导致代码重复

我看到的最自然的解决方案是为我的所有控制器创建基本控制器类,但我读到,这在ZF中不是一个好的实践。那我该怎么做呢?即使它只是一行重复的代码(例如,
$this->view->menu=$reusableObject->generateMenuData()
),我也不喜欢它

这种解决方案的最佳实践是什么?你怎么解决这个问题

我使用的是ZF1.11

编辑:我想提到的是,我很高兴知道如何使用某种phtml文件而不是包含html标记来实现这一点

EDIT2:关键是,我对导航链接并不感兴趣。而不是菜单与链接,例如,最新的帖子列表,但在每一页,所以在每个控制器。我特别感兴趣的是“如何在ZF中使用这种东西”。

Zend Framework有一个:

Zend_Navigation是一个用于管理指向web页面的指针树的组件。简单地说:它可以用于创建菜单、面包屑、链接和站点地图,或者用作其他导航相关用途的模型

它也有一些优点:

  • 面包屑,用于呈现当前活动页面的路径
  • 链接,用于渲染导航头链接(例如)
  • 菜单,用于渲染菜单
  • 站点地图,用于呈现符合»站点地图XML格式的站点地图
  • 导航,用于代理调用其他导航帮助程序
为防止代码重复,将配置
Zend_Navigation
实例,并将其设置为从application.ini查看或使用以配置它,然后application.ini将自动将其分配给查看帮助程序

重新编辑您的内容

您可以对任意菜单使用
Zend_导航
,而不仅仅是主导航。只需根据需要对其进行配置,然后使用适当的辅助对象进行渲染。如果没有一个导航帮助程序是您正在寻找的,只需编写一个帮助程序或一个部分来完成所需的输出

这两种方法都很好,而且都是可行的。

Zend Framework有一个:

Zend_Navigation是一个用于管理指向web页面的指针树的组件。简单地说:它可以用于创建菜单、面包屑、链接和站点地图,或者用作其他导航相关用途的模型

它也有一些优点:

  • 面包屑,用于呈现当前活动页面的路径
  • 链接,用于渲染导航头链接(例如)
  • 菜单,用于渲染菜单
  • 站点地图,用于呈现符合»站点地图XML格式的站点地图
  • 导航,用于代理调用其他导航帮助程序
为防止代码重复,将配置
Zend_Navigation
实例,并将其设置为从application.ini查看或使用以配置它,然后application.ini将自动将其分配给查看帮助程序

重新编辑您的内容

您可以对任意菜单使用
Zend_导航
,而不仅仅是主导航。只需根据需要对其进行配置,然后使用适当的辅助对象进行渲染。如果没有一个导航帮助程序是您正在寻找的,只需编写一个帮助程序或一个部分来完成所需的输出


这两种方法都很好,都是可行的。

使用。您甚至可以使用配置文件对其进行配置。

使用。您甚至可以使用。

Pipped by 8秒:)从配置文件对其进行配置。您可以使用应用程序资源插件全局配置导航。请参阅我答案中的链接。@prosty我不理解您的编辑。在使用上述建议的组件时,您将不会使用任何字符串。这一切都是通过助手完成的,Zend_导航可以通过编程进行配置。我并没有真正考虑菜单,而是各种动态边栏,所以导航组件不是我所需要的。我写了一个关于菜单的问题,但是我真的在考虑其他的边栏,比如:动态框和最新的帖子标题,动态框和最新的评论等等。非常感谢你最近的编辑(带有链接)。我想那个插件就是我需要的。我不知道我可以在视图中注入一些东西。我之前考虑过helpers,但是我找不到如何在不返回html字符串的情况下使用helpers,而是使用单独phtml文件的helper(我的第一次编辑)。有帮手可以吗?谢谢您的回答。@prostynick看一看类似“菜单视图”的帮助程序()。它允许您设置一个用于渲染的局部视图,渲染时间为8秒:)。您可以使用应用程序资源插件全局配置导航。请参阅我答案中的链接。@prosty我不理解您的编辑。在使用上述建议的组件时,您将不会使用任何字符串。这一切都是通过助手完成的,Zend_导航可以通过编程进行配置。我并没有真正考虑菜单,而是各种动态边栏,所以导航组件不是我所需要的。我写了一个关于菜单的问题,但是我真的在考虑其他的边栏,比如:动态框和最新的帖子标题,动态框和最新的评论等等。非常感谢你最近的编辑(带有链接)。我想那个插件就是我需要的。我不知道我可以在视图中注入一些东西。我之前考虑过helpers,但是我找不到如何在不返回html字符串的情况下使用helpers,而是使用单独phtml文件的helper(我的第一次编辑)。这有可能吗