Как настроить OneUpUploaderBundle и OneUpFlysystemBundle для работы в Symfony 4.1

Вступление

Я пытаюсь Syfony 4.1 с OneUpUploaderBundle а также OneUpFlysystemBundle,

проблема

Мой configuraton работал нормально в Symfony 3.4 еще с Symfony 4.1
Я не могу понять, как внедрить OnUpUploaderBundle в мой код в контроллере.

конфигурация

OneUpUploader.yaml

oneup_uploader:
mappings:
gallery:
storage:
type: flysystem
filesystem: oneup_flysystem.gallery_filesystem

frontend: blueimp
enable_progress: true
namer: app.upload_unique_namer

max_size: 104857600

OneUpFlysystem.yaml

oneup_flysystem:
adapters:
my_adapter:
local:
directory: '%kernel.root_dir%/../data'

filesystems:
default_filesystem:
adapter: my_adapter
alias: League\Flysystem\Filesystem

Часть услуг.yaml

app.upload_listener:
class: App\EventListener\UploadListener
arguments: ['@doctrine.orm.entity_manager', '@session', '@service_container']
tags:
- { name: kernel.event_listener, event: oneup_uploader.pre_upload.gallery, method: onUpload }
- { name: kernel.event_listener, event: oneup_uploader.post_upload.gallery, method: onPostUpload }

app.allowed_mime_type_listener:
class: App\EventListener\AllowedMimeTypeValidationListener
arguments: ['@service_container']
tags:
- { name: kernel.event_listener, event: oneup_uploader.validation.gallery, method: onValidate }

app.upload_unique_namer:
class: App\Uploader\Naming\UploadUniqueNamer
arguments: ['@service_container']
public: true

// SEE sections ERROR 1 and ERROR 2
// FOR relevant config details
oneup_flysystem.gallery_filesystem:
class: [...]
public: true

Код

// previously, to reference upoad root path node
// i could just write following in controller and it worked

$filesystem = $this->get('oneup_flysystem.gallery_filesystem');

$complete_file_path = $ultraHelpers->getDownloadableFilePath($file_id);
$exists = $filesystem->has($complete_file_path);

// Now i am stumped how to get the same effect in symfony 4.1

Ошибка 1

если изменить мой сервис, как это так

oneup_flysystem.gallery_filesystem:
class: League\Flysystem\FilesystemInterface
public: true

текущая ошибка

Не удалось создать экземпляр интерфейса League \ Flysystem \ FilesystemInterface

Ошибка 2

если изменить мой сервис, как это так

oneup_flysystem.gallery_filesystem:
class: League\Flysystem\Filesystem
public: true

текущая ошибка

(1/1) RuntimeException
Не удается автоматически подключить службу «oneup_flysystem.gallery_filesystem»: аргумент «$ adapter» метода «League \ Flysystem \ Filesystem :: __ construct ()» ссылается на интерфейс «League \ Flysystem \ AdapterInterface», но такой службы не существует. Возможно, вам следует связать этот интерфейс с существующим сервисом oneup_flysystem.my_adapter_adapter.

2

Решение

Кажется, вы пропустили отступ в вашей конфигурации. Попробуйте изменить это так

filesystems:
default_filesystem:
adapter: my_adapter
alias: League\Flysystem\Filesystem
1

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

Правильный конфиг, который работает:

oneup_flysystem.gallery_filesystem:
alias: League\Flysystem\Filesystem
public: true
0

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