league / flysystem-bundle
Symfony 应用程序中集成 Flysystem 的捆绑包
Requires
- php: >=8.0
- league/flysystem: ^3.0
- symfony/config: ^5.4 || ^6.0 || ^7.0
- symfony/dependency-injection: ^5.4 || ^6.0 || ^7.0
- symfony/deprecation-contracts: ^2.1 || ^3
- symfony/http-kernel: ^5.4 || ^6.0 || ^7.0
- symfony/options-resolver: ^5.4 || ^6.0 || ^7.0
Requires (Dev)
- doctrine/mongodb-odm: ^2.0
- league/flysystem-async-aws-s3: ^3.1
- league/flysystem-aws-s3-v3: ^3.1
- league/flysystem-azure-blob-storage: ^3.1
- league/flysystem-ftp: ^3.1
- league/flysystem-google-cloud-storage: ^3.1
- league/flysystem-gridfs: ^3.28
- league/flysystem-memory: ^3.1
- league/flysystem-read-only: ^3.15
- league/flysystem-sftp-v3: ^3.1
- symfony/dotenv: ^5.4 || ^6.0 || ^7.0
- symfony/framework-bundle: ^5.4 || ^6.0 || ^7.0
- symfony/phpunit-bridge: ^5.4 || ^6.0 || ^7.0
- symfony/var-dumper: ^5.4 || ^6.0 || ^7.0
- symfony/yaml: ^5.4 || ^6.0 || ^7.0
README
flysystem-bundle 是一个将 Flysystem 库集成到 Symfony 应用程序中的捆绑包。
它提供了对文件系统的有效抽象,以便根据执行环境(开发中的本地文件、生产中的云存储和测试中的内存)来更改存储后端。
注意:您正在阅读 flysystem-bundle 3.0 的文档,它依赖于 Flysystem 3。
如果您使用 Flysystem 1.x,请使用 flysystem-bundle 1.x。
如果您使用 Flysystem 2.x,请使用 flysystem-bundle 2.x。
阅读 升级指南 了解如何升级。
安装
flysystem-bundle 3.x 需要 PHP 8.0+ 和 Symfony 5.4+。
如果您需要支持较低版本的 PHP/Symfony,请考虑使用支持 Flysystem 3.x 和旧版 PHP/Symfony 版本的 flysystem-bundle 2.x。
您可以使用 Symfony Flex 安装捆绑包
composer require league/flysystem-bundle
基本用法
Symfony Flex 创建的默认配置文件提供了足够的配置,以便在安装捆绑包后立即在应用程序中使用 Flysystem
# config/packages/flysystem.yaml flysystem: storages: default.storage: adapter: 'local' options: directory: '%kernel.project_dir%/var/storage/default'
此配置定义了一个基于本地适配器的单个存储服务(default.storage
),并配置为使用 %kernel.project_dir%/var/storage/default
目录。
对于在 flysystem.storages
下定义的每个存储,都会创建一个使用您提供的名称的关联服务(在这种情况下,将创建一个名为 default.storage
的服务)。捆绑包还会为这些服务中的每一个创建一个命名别名。
这意味着您可以使用两种方式使用定义的存储
-
或者通过自动注入,通过类型提示对
FilesystemOperator
进行类型提示,并使用匹配您存储之一的变量名use League\Flysystem\FilesystemOperator; class MyService { private FilesystemOperator $storage; // The variable name $defaultStorage matters: it needs to be the camelized version // of the name of your storage. public function __construct(FilesystemOperator $defaultStorage) { $this->storage = $defaultStorage; } // ... }
对于控制器来说也是一样
use League\Flysystem\FilesystemOperator; class MyController { // The variable name $defaultStorage matters: it needs to be the camelized version // of the name of your storage. public function index(FilesystemOperator $defaultStorage) { // ... } }
-
或者通过手动注入,在您的服务中注入名为
default.storage
的服务。
一旦您有了 FilesystemOperator,您就可以调用 Filesystem API 中的方法来与您的存储进行交互。
完整文档
- 入门指南
- 云存储提供商:AsyncAws S3、AWS SDK S3、Azure、Google Cloud Storage、DigitalOcean Spaces、Scaleway Object Storage
- 与 FTP 和 SFTP 服务器交互
- 使用懒加载适配器通过环境变量切换存储后端
- 创建自定义适配器
- MongoDB GridFS
安全漏洞
如果在包中发现安全漏洞,请遵循我们的披露流程。
向后兼容承诺
此库遵循与Symfony框架相同的向后兼容承诺:https://symfony.com/doc/current/contributing/code/bc.html
注意:此包中的许多类要么被标记为
@final
,要么被标记为@internal
。@internal
类不包含在任何向后兼容承诺中(您不应在代码中使用它们),而@final
类可以使用但不应被扩展(请使用组合代替)。