league/flysystem-bundle

Symfony 应用程序中集成 Flysystem 的捆绑包

安装次数: 17,103,377

依赖项: 61

建议者: 4

安全: 0

星星: 357

观察者: 11

分支: 70

开放性问题: 5

类型:symfony-bundle

3.3.5 2024-05-30 20:04 UTC

README

Packagist Version Software license

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 中的方法来与您的存储进行交互。

完整文档

  1. 入门指南
  2. 云存储提供商:AsyncAws S3AWS SDK S3AzureGoogle Cloud StorageDigitalOcean SpacesScaleway Object Storage
  3. 与 FTP 和 SFTP 服务器交互
  4. 使用懒加载适配器通过环境变量切换存储后端
  5. 创建自定义适配器
  6. MongoDB GridFS

安全漏洞

如果在包中发现安全漏洞,请遵循我们的披露流程

向后兼容承诺

此库遵循与Symfony框架相同的向后兼容承诺:https://symfony.com/doc/current/contributing/code/bc.html

注意:此包中的许多类要么被标记为@final,要么被标记为@internal@internal类不包含在任何向后兼容承诺中(您不应在代码中使用它们),而@final类可以使用但不应被扩展(请使用组合代替)。