Symfony 2-интеграция и расположение библиотек без пакетов


Я все о лучшей практике symfony 2, и я хотел бы интегрировать библиотеку php в проект. Библиотека-это не связка, простой класс php с некоторыми методами.

Мой вопрос просто следует за следующим, который не имеет принятого ответа. В любом случае, из того, что я прочитал здесь, я решил загрузить класс автоматически, но понятия не имею, где я должен найти файл php.

Может быть src/MyBundle/DependencyInjection/? Я действительно сомневаюсь в этом, так как библиотека не имеет зависимости от других услуг. иметь.

Должен ли я создать каталог типа src/MyBundle/Services/ или src/MyBundle/Libraries/?

Какова здесь наилучшая практика?

1 3

1 ответ:

Как уже упоминалось b.enoit.be создайте службу из класса.

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');

        ...
    }
}
?>