Как использовать несколько аргументов в сервисе symfony2

Это код моего служебного файла

adminusercheck.commonFunc:
        class:        adminBundle\Helpers\CommonFunctions
        #arguments: ["@session"]        

        arguments:
            - @doctrine.orm.entity_manager
            - @session

Это мой код класса обслуживания

use Doctrine\ORM\EntityManager;
class CommonFunctions{

    private $session;
    protected $em;

    public function __construct(Session $session, EntityManager $em)
    {
        $this->session = $session;
         $this->em = $em;
    }

Объясните, пожалуйста, в чем проблема? Вы получаете сообщения об ошибках?

Adi Bradfield 26.08.2018 17:11

Уловимая фатальная ошибка: аргумент 1, переданный в adminBundle \ Helpers \ CommonFunctions :: __ construct (), должен быть экземпляром Symfony \ Component \ HttpFoundation \ Session \ Session, заданным экземпляром Doctrine \ ORM \ EntityManager, вызванным в

anoop 26.08.2018 18:41
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
2
211
1

Ответы 1

Ваш порядок аргументов в constructor не совпадает с тем, что находится внутри файла служб.

Следующие,

public function __construct(Session $session, EntityManager $em)

Должно быть,

public function __construct(EntityManager $em, Session $session)

Важно отметить, что порядок аргументов важен.

https://symfony.com/doc/2.8/components/dependency_injection.html

Отдельно отметим, что постарайтесь свести DI к минимуму. Это повлияет на производительность.

Надеюсь это поможет. Спасибо.

Другие вопросы по теме