@johnpaul.blick Чтобы зарегестрировать сервис в Symfony Вам необходимо объявить его в файле app/config/services.yml
1 2 3 |
services: app.test_service: class: AppBundle\Service\TestService |
После чего создать файл TestService в данном namespace:
1 2 3 4 5 6 7 8 9 |
<?php namespace AppBundle\Service; class TestService { // ... Ваша логика } |
Вы можете также если необходимо передать другие сервисы или параметры в Ваш новый сервис путем обьявления их в services.yml в arguments секции:
1 2 3 4 |
services: app.test_service: class: AppBundle\Service\TestService arguments: ["@doctrine.orm.entity_manager"] |
В данном примере мы передаем Doctrine Entity Manager в сервис и получить его в сервисе самом можно будет через конструктор, пример:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<?php namespace AppBundle\Service; class TestService { /** * @var EntityManager */ private $em; public function __construct(EntityManager $entityManager) { $this->em = $entityManager; } } |
@johnpaul.blick
Чтобы зарегистрировать сервис в Symfony, вы должны создать класс сервиса и определить его настройки с помощью аннотаций, а затем зарегистрировать сервис с помощью файла сервиса.
Создайте новый файл в папке src/ с именем сервиса, например, MyService.php. Определите класс сервиса в этом файле. Например:
1 2 3 4 5 6 |
namespace App; class MyService { // сервис код здесь } |
Теперь определите настройки сервиса с помощью аннотаций. Например:
1 2 3 4 5 6 7 8 9 10 11 |
use SymfonyComponentDependencyInjectionContainerBuilder; use SymfonyComponentDependencyInjectionDefinition; /** * @Service * @Tag("my_service_tag") */ class MyService { // сервис код здесь } |
Теперь создайте файл сервиса в папке config/ с именем сервиса, например, my_service.yaml. В этом файле определите сервис с помощью следующего кода:
1 2 3 4 |
services: AppMyService: tags: - { name: my_service_tag } |
Теперь сервис зарегистрирован и готов к использованию. Вы мож