Я пытаюсь внедрить общедоступные службы, такие как entityManager, в конструктор службы, которую я создал, но у меня по-прежнему возникает эта ошибка:
Слишком мало аргументов для функции App \ Services \ BillingInterface :: __ construct (), 0 передано в /var/www/.../src/Controller/TestController.php в строке 144 и ожидается ровно 1.
В моих контроллерах сервисы корректно вводятся разными методами, нов сервисе, который я создал, он не внедряется в конструктор.
Я ничего не менял в services.yaml, поскольку в документации сказано, что autowire в Symfony 4.2
PS: я недавно обновилсяот Symfony 4.1 до 4.2, и я не уверен, но думаю, что это работало раньше.
Возможно, библиотека не обновилась правильно, но я не нахожу никаких ошибок.
Вот информация для службы
Сервисный код:
#/src/Services/BillingInterface
namespace App\Services;
use Doctrine\ORM\EntityManagerInterface;
class BillingInterface {
private $em;
public function __construct(EntityManagerInterface $entityManager)
{
$this->em = $entityManager;
}
}
Код контроллера:
namespace App\Controller;
use App\Services\BillingInterface;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
class TestController extends AbstractController {
public function teest(EntityManagerInterface $entityManager)
{
$billing = new BillingInterface();
}
}
И если я создаю экземпляр BillingInterface с параметром $entityManager
r Контроллера, он работает, но я бы хотел, чтобы он вводился непосредственно в конструктор класса BillingInterface
.
И, наконец, вот что написано в документации Symfony:
// src/Service/MessageGenerator.php
// ...
use Psr\Log\LoggerInterface;
class MessageGenerator
{
private $logger;
public function __construct(LoggerInterface $logger)
{
$this->logger = $logger;
}
public function getHappyMessage()
{
$this->logger->info('About to find a happy message!');
// ...
}
}
Ссылка : https://symfony.com/doc/current/service_container.html
Глава : Внедрение услуг / настройка службы
Итак, я не знаю, что не так с моей службой.
Спасибо за ваши ответы.