Php 在Symfony 3的基础布局中使用细枝延伸

Php 在Symfony 3的基础布局中使用细枝延伸,php,twig,symfony,Php,Twig,Symfony,我有一个控制器,用于设置数据库中存储的一些东西。控制器大致如下所示: class SetupController extends Controller { protected $foreground = '#fff'; protected $background = '#333'; protected $logo = 'default.png'; protected $show_logo = true; public function HomePa

我有一个控制器,用于设置数据库中存储的一些东西。控制器大致如下所示:

class SetupController extends Controller
{   
    protected $foreground = '#fff';
    protected $background = '#333';
    protected $logo = 'default.png';
    protected $show_logo = true;

    public function HomePageAction()
    {
        ...          
        $options = [
            ...
            'logo'              => $this->logo,
            'foreground'        => $this->foreground,
            'background'        => $this->background
        ];

        return $this->render('CommonBundle:Layout:topbar_info.html.twig', ['options' => $options]);
    }
}
我如何在
/app/Resources/views/base.html.twig
(这是我的布局)中使用该函数,如下所示:

<head>
    ...
    {% block stylesheets %}
        ...
        <style type="text/css" media="all">
            .background, .dynamic_color {
                background-color: {{ options.background }};
            }    
        </style>
    {% endblock %}
</head>
<body>
    <div id="logo_id_area_container" class="topbar">
        {{ render(controller('CommonBundle:Setup:HomePage')) }}
    </div>
</body>
{{ render_logo() }}
我从
base.html.twig
(主布局或基本模板)调用它,如下所示:

<head>
    ...
    {% block stylesheets %}
        ...
        <style type="text/css" media="all">
            .background, .dynamic_color {
                background-color: {{ options.background }};
            }    
        </style>
    {% endblock %}
</head>
<body>
    <div id="logo_id_area_container" class="topbar">
        {{ render(controller('CommonBundle:Setup:HomePage')) }}
    </div>
</body>
{{ render_logo() }}
但我最终犯了以下错误:

临界-调用未定义的函数renderLogo()临界- 未捕获的PHP异常 Symfony\Component\Debug\Exception\UndefinedFunctionException: 试图从全局命名空间调用函数“renderLogo”

我已在
服务中注册了以下扩展名。yml

setup.twig_extension:
    class: CommonBundle\Twig\SetupExtension
    arguments: ['@doctrine','@session', '@zend_bridge']
    tags:
        - { name: twig.extension }

我还缺少什么?我在Twig扩展的
getFunctions()
方法中使用了Symfony 3.2.5

,您告诉Twig可调用的是字符串
renderLogo
。PHP将其解释为函数
renderLogo()
。对于对象方法,需要传递一个数组,其中第一个元素是对象,第二个元素是方法名(请参阅):