Я использую Symfony 3.4 и пытаюсь перенести в него приложение Silex.Так что я не могу использовать автопроводку Symfony.
Мой service.yml выглядит как
services:
# default configuration for services in *this* file
_defaults:
# automatically injects dependencies in your services
autowire: false
# automatically registers your services as commands, event subscribers, etc.
autoconfigure: false
# this means you cannot fetch services directly from the container via $container->get()
# if you need to do this, you can override this setting on individual services
public: false
audit.persister.base:
class: MyBundle\Security\Audit\Persister\ChainedEntityTrailPersister
calls:
- method: 'addPersister'
argument:
- '@audit.persister_elasticsearch'
Класс скомпилированного кэша выглядит следующим образом:
$this->services['audit.persister.base'] = $instance = new \MyBundle\Security\Audit\Persister\ChainedEntityTrailPersister();
$instance->addPersister();
Я получил ошибку:
Type error: Too few arguments to function MyBundle\Security\Audit\Persister\ChainedEntityTrailPersister::addPersister(), 0 passed in /var/www/html/api/var/cache/local/ContainerAdjsiif/getAudit_Persister_BaseService.php on line 14 and exactly 1 expected
Ошибка правильная.Потому что создатель кэшированного класса не предоставляет аргумент, который я установил в config.
Кто-нибудь знает, почему аргумент не будет установлен в сгенерированном кэше?