如何从控制器以外的地方呼叫服务

时间:2013-07-02 19:40:00

标签: symfony

如何从控制器以外的地方呼叫服务

我有这样的服务

<?php
namespace Acme\TopBundle\MyServices;


class MyFunc
{
    public function generateRandomString($length = 8) {
        //

        return $randomString;
    }
}

我可以从控制器

调用此服务
$this->get('myfunc')->generateRandomString()

但是来自控制器外部

$this->get('myfunc')->generateRandomString() 

显示

FatalErrorException: Error: Call to undefined method Acme\AdminBundle\Admin\LessonAdmin::get() in 

$this->container->get('myfunc')->generateRandomString() 

显示

Undefined property: Acme\AdminBundle\Admin\UserAdmin::$container in /Users/daichi/httproot/muty/src/Acme/AdminBundle/Admin/UserAdmin.php

如何从控制器外部调用服务?

1 个答案:

答案 0 :(得分:1)

访问容器或任何其他服务的最简单方法是使用依赖项注入组件。

您可以在documentation of dependency injection component中找到有关它的更多信息。 我建议你创建一个服务,你可以在这里找到如何创建一个服务service container documentation