OneupflySystemBundle:如何在开发之间具有不同的适配器.和产品



我正在集成OneupflySystemBundle,我想知道如何在"开发PC"上使用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"

但是我不喜欢这个解决方案,有人有更好的主意吗?

您的最后一个解决方案与Symfony本身允许选择DBMS驱动程序使用或配置缓存后端的方式非常相似。看起来还可以。

与执行环境相关的设置可以在app/config/parameters.yml中配置(将choosen_adapter参数放入其中(,其原因是。

但是,这通常是一种不好的做法,导致在开发和生产中使用不同的环境的怪异行为。某些错误可能仅在生产中出现,因为使用S3而不是本地FS。

您应该尝试在开发环境上尽可能地与生产环境一起工作。S3很便宜(即使您没有存储很多数据(,如果可能的话,您也应该在开发中使用它。

相关内容

  • 没有找到相关文章

最新更新