Зарегистрированный сервис не работает в комплекте поставщика - PullRequest
0 голосов
/ 30 сентября 2019

У меня есть проект, который использует FOSHttpCacheBundle

По какой-то причине мне нужно расширить класс TagHandler и использовать свой собственный, поэтому я создаю MyTagHandler, который расширяет TagHandler:

use FOS\HttpCacheBundle\Handler\TagHandler as BaseTagHandler;

class MyTagHandler extends BaseTagHandler
{
...

Затем я регистрирую его в services.xml:

<service id="fos_http_cache.handler.mytag_handler" class="MyBundle\Cache\MyTagHandler">
    <argument type="service" id="fos_http_cache.cache_manager" on-invalid="null" />
</service>

Это прекрасно работает, но я хочу, чтобы оно использовалось в каком-то другом пакете, которым я также владею.

Итак, я попытался сделать то же самое в

MyProject/vendor/MyOtherBundle

и, выполнив те же действия, что и выше, получаю:

[error] 546#546: *125 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Uncaught Symfony\Component\Debug\Exception\FatalThrowableError: Type error: Argument 1 passed to MyTagHandler::__construct() must be an instance of FOS\HttpCache\CacheInvalidator, null given, called in MyProject/admin/cache/dev/adminDevDebugProjectContainer.php on line 3776 in MyTagHandler.php:36

Таким образом, в основном fos_http_cache.cache_manager распознается и используется впакет проекта, но он не распознается при использовании в комплекте поставщика.

Любая помощь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...