无法在我的控制器symfony2中获得服务

时间:2014-02-14 11:31:31

标签: php symfony

当我想要获得我创建的服务时,我的控制器出现问题,当我在localhost时一切正常,但是当我将网站放入服务器时,我遇到了问题。

以下是在我的控制器中出错的行:

$myService = $this->get('Acme_test.service');

services.yml

services:
    Acme_test.service:
        class: Acme\testBundle\Services\Testservice
        arguments: [%folder%, @service_container]

错误:

ClassNotFoundException: Attempted to load class "Testservice" from namespace "Acme\TestBundle\Services" in /home/www/acme/app/cache/dev/appDevDebugProjectContainer.php line 736. Do you need to "use" it from another namespace?

我试图清除缓存,仍然有同样的错误!!

1 个答案:

答案 0 :(得分:2)

您需要将嵌套服务设置为services文件中的services.yml节点,如:

services:
    acme_test.service:
        class: Acme\TestBundle\Service\TestService
        arguments: [%folder%, @service_container]

我认为最好用小写写服务名称。然后在控制器中获得服务,如:

$myService = $this->get('acme_test.service');

注意:我认为您在 camelCase中的TestBundleTestService名称

注意2:通常服务目录名称为Service,因此请检查您的命名空间,它必须是Acme\TestBundle\Service,类名必须为TestService并且文件Acme\TestBundle\Service\TestService.php必须存在。

注3:手动清除缓存目录后,所有建议和修改完成。