Symfony 2 - 非捆绑库集成和位置

时间:2017-05-28 21:26:53

标签: php web-services symfony autoload symfony-2.8

我是关于symfony 2的最佳实践,我想将php库集成到项目中。库是一个非bundle,一个带有一些方法的简单php类。

我的问题就在following之后,它没有接受的答案。无论如何,我在这里读到的,我决定自动加载类,但不知道我应该在哪里找到php文件。

也许src/MyBundle/DependencyInjection/?我真的很怀疑它,因为库不依赖于我的其他服务。

我应该创建像src/MyBundle/Services/src/MyBundle/Libraries/这样的目录吗?

这里的最佳做法是什么?

1 个答案:

答案 0 :(得分:0)

如b.enoit.be所述,从班级创建服务。

<强> MyBundle /服务/ MyServiceClass.php

<?php

namespace MyBundle\Service;

class MyService
{
...
}

应用/配置/ services.yml

services:
    app.my_service:
        class: MyBundle\Service\MyService

使用它,例如在控制器中

<强> MyBundle /控制器/ DefaultController.php

<?php

namespace MyBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;

class DefaultController extends Controller
{
    public function indexAction(Request $request)
    {

        ...

        // get the service from the container
        $yourService = $this->get('app.my_service');

        ...
    }
}
?>