我正在尝试使用 ezpublish5 为我的页面创建一个菜单。我遵循了本教程http://partialcontent.com/Code/working-with-ez-publish-5-subrequests。我对 Symfony 很陌生,但我有自己的包并在运行,至少它使用的是我自己的 pagelayout.html.twig。
我了解路由的作用,但就我而言,为了创建菜单,我需要其他东西,可能是服务,所以我可以在我的 twig-template 中执行此操作
{{ render( controller( "myMenuController:myFunction" ) ) }}
所以我把它添加到我的 my\Bundle\Resources\config\services.yml
parameters:
my_root.menucontroller.class: my\Bundle\Controller\MenuController
services:
my_root.controller:
class: %my_root.menucontroller.class%
arguments: [@ezpublish.view_manager]
calls:
- [setContainer, [@service_container] ]
myalias:
alias: my_root.controller
当我在浏览器中打开它时,它说:
You have requested a non-existent service "myalias".") in "{% extends "Bundle::pagelayout.html.twig" %}
我在 github 上检查了 ezp5 安装的其他存储库,它们具有几乎相同的 yml-setup。我还意识到,当我在 services.yml 中故意犯语法错误时(同时在模板中省略了对控制器的调用),它不会改变任何东西。我还意识到,当我在 my\Bundle\DependencyInjection\myBundleExtension.php (应该加载我的 services.yml 文件)中执行相同操作时,它也不会发生任何事情。
所以我感觉 bundle-setup 的某些东西是错误的,不知何故并非所有内容都正确加载。但它可能是什么?在 symfony2 的文档中的某处,它说 Bundle\DependencyInjection\xyzExtension.php 中的加载方法会被自动调用。
有人知道我的设置可能有什么问题吗?我真的没有想法了。而对于 ezpublish5 部分.. 这真的是现在创建菜单的最佳方式吗?