OneupFlysystemBundle: как иметь разные адаптеры между dev. и прод

Я интегрирую OneupFlysystemBundle, и мне интересно, как использовать local адаптер на моем компьютере для разработки и awss3v3 на производственных серверах.

Я сделал это, но это не работает (он всегда использует локальный):

oneup_flysystem:
adapters:
default_adapter:
local:
directory: %flysystem.local_adapter.directory%
awss3v3:
client: flysystem_clients.s3
bucket: "%flysystem.s3_client.foo.bucketName%"prefix: "foo/"

filesystems:
default:
adapter: default_adapter

Я думаю, что я мог бы заставить это работать, используя:

oneup_flysystem:
adapters:
default_local_adapter:
local:
directory: %flysystem.local_adapter.directory%
default_s3_adapter:
awss3v3:
client: flysystem_clients.s3
bucket: "%flysystem.s3_client.foo.bucketName%"prefix: "foo/"

filesystems:
default:
adapter: "%choosen_adapter%" # choosen_adapter value beeing either "default_local_adapter" or "default_s3_adapter"

но мне не нравится это решение, у кого-нибудь есть идея получше?

0

Решение

Ваше последнее решение очень похоже на то, как сам Symfony позволяет выбирать драйвер СУБД для использования или настраивать серверную часть кэша. Это выглядит хорошо.

Параметры, относящиеся к среде выполнения, можно настроить в app/config/parameters.yml (положить choosen_adapter параметр в нем), его причина существования.

Тем не менее, это обычно плохая практика, ведущая к странному поведению при использовании другой среды в разработке и на производстве. Некоторые ошибки могут появляться только в производстве, потому что вместо локальной FS используется S3.

Вы должны попытаться работать в среде разработчика как можно ближе к рабочей среде. S3 дешевый (даже бесплатный, если вы не храните много данных), если возможно, вы должны использовать его также в dev.

1

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

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

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