В Symfony правильным названием для сервиса, который может быть вызван в различных местах, является "shared service".
Shared service - это сервис, который создается только один раз и может быть разделен между несколькими объектами, которые требуют его использования. Такой подход позволяет избежать повторного создания и инициализации сервиса и обеспечивает централизованное управление совместными ресурсами.
Чтобы объявить shared service в Symfony, необходимо использовать конфигурацию сервисов (services.yaml или services.xml) или аннотации (с использованием аннотации @Service()).
Вот пример, как можно объявить shared service в конфигурационном файле services.yaml:
services: app.shared_service: class: AppBundleServiceSharedService shared: true
Здесь мы создаем shared service под названием "app.shared_service" с классом "AppBundleServiceSharedService" и указываем опцию "shared" в значении true.
После того как сервис объявлен, его можно внедрить (inject) в любойорый другой класс или контроллер, используя механизм внедрения зависимостей (dependency injection) в Symfony.
Пример использования shared service в контроллере:
namespace AppBundleController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentRoutingAnnotationRoute; class MyController extends AbstractController { /** * @Route("/my-route") */ public function myAction() { $sharedService = $this->get('app.shared_service'); // Далее можно использовать $sharedService для выполнения необходимых операций } }
В данном примере мы внедряем shared service "app.shared_service" в контроллер и сохраняем его в переменной $sharedService. Затем мы можем использовать эту переменную для вызова методов и выполнения операций, определенных в классе SharedService.
Итак, в Symfony правильным названием сервиса, который может быть вызван в разных местах, является "shared service". Объявление и использование shared service позволяет создавать сервисы, которые создаются только один раз и могут быть использованы в различных частях приложения.