У меня есть проект, который использует 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
распознается и используется впакет проекта, но он не распознается при использовании в комплекте поставщика.
Любая помощь?