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

Symfony 2 - non bundle library integration and location

我完全关注 symfony 2 的最佳实践,我想将一个 php 库集成到项目中。图书馆是一个非捆绑包,一个简单的 php class 和一些方法。

我的问题紧跟在 following 之后,没有公认的答案。无论如何,根据我在这里阅读的内容,我决定自动加载 class,但不知道我应该在哪里找到 php 文件。

也许src/MyBundle/DependencyInjection/?我真的很怀疑,因为图书馆不依赖于我拥有的其他服务。

我应该创建一个类似于 src/MyBundle/Services/ 还是 src/MyBundle/Libraries/ 的目录?

这里的最佳做法是什么?

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

MyBundle/Service/MyServiceClass.php

<?php

namespace MyBundle\Service;

class MyService
{
...
}

app/config/services.yml

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

使用它,例如在控制器中

MyBundle/Controller/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');

        ...
    }
}
?>