Циркулярная ссылка при использовании VichUploader с KnpGaufrette и Doctrine в Symfony2

Я попытался использовать следующую настройку в моем проекте Symfony2:

  • VichUploader Bundle для обработки загрузки файлов
  • KnpGaufrette Bundle который должен использоваться VichUploader в качестве адаптера хранения

Проблема: Как только я пытаюсь использовать адаптер хранения Gaufrette «doctrine_dbal», я получаю следующую ошибку:

[Symfony\Component\DependencyInjection\Exception\ServiceCircularReferenceException]
Circular reference detected for service "doctrine.dbal.default_connection", path: "doctrine.orm.default_entity_manager -> doctrine.dbal.default_connection -> vich_uploader.upload_handler -> vich_uploader.storage.gaufrette -> knp_gaufrette.filesystem_map -> gaufrette.storage_fs_filesystem".

Проблема возникает, как только Symfony пытается проверить конфигурацию, например, на

app/console cache:clear

Как я могу решить эту проблему?

Настройка моего проекта является настройкой по умолчанию symfony/framework-standard-edition с версией 2.5.* без пакета AcmeDemo.

Я просто добавил пакеты через Composer:

composer require knplabs/knp-gaufrette-bundle vich/uploader-bundle

… добавил их в AppKernel’s registerBundles():

//...
$bundles = array(
new Symfony\Bundle\FrameworkBundle\FrameworkBundle(),
new Symfony\Bundle\SecurityBundle\SecurityBundle(),
new Symfony\Bundle\TwigBundle\TwigBundle(),
new Symfony\Bundle\MonologBundle\MonologBundle(),
new Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle(),
new Symfony\Bundle\AsseticBundle\AsseticBundle(),
new Doctrine\Bundle\DoctrineBundle\DoctrineBundle(),
new Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle(),
new AppBundle\AppBundle(),
new Vich\UploaderBundle\VichUploaderBundle(), //NEW
new Knp\Bundle\GaufretteBundle\KnpGaufretteBundle(), //NEW
);
//...

… и добавил следующую конфигурацию config.yml, который основан на документах VichUploader с Gaufrette а также KnpGaufrette с доктриной DBAL:

# ...
knp_gaufrette:
stream_wrapper: ~

adapters:
storage_adapter:
doctrine_dbal:
connection_name: default
table: data_storage
columns:
key: id
content: file
mtime: mtime
checksum: checksum

filesystems:
storage_fs:
adapter:    storage_adaptervich_uploader:
db_driver: orm
storage:   gaufrette

mappings:
storage:
uri_prefix:         /images/products
upload_destination: storage_fs

3

Решение

Это ошибка в версии 0.14.0 (https://github.com/dustin10/VichUploaderBundle/issues/370) который был исправлен в этом коммите:
https://github.com/dustin10/VichUploaderBundle/commit/4abf4180afaf318a66d3e34736c5a14aa0883bd3

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]