danhunsaker/laravel-flysystem-others

自动注册它所识别的每个第三方 Flysystem 适配器,作为 Laravel 文件系统驱动。

v1.4.1 2023-04-29 09:40 UTC

This package is auto-updated.

Last update: 2024-08-29 12:47:26 UTC


README

Software License Gitter Liberapay receiving

Latest Stable Version Latest Unstable Version Build Status Codecov Total Downloads

自动注册被识别的第三方 Flysystem 适配器。

这允许你使用第三方适配器,无需编写自己的服务提供者来正确加载它们。它自动检测哪些适配器可用,并仅注册已安装的适配器。它还检测是否可用 Eventable 版本的 Flysystem,如果是,则切换到该版本,让你可以监听 Flysystem 事件 并相应地影响它们。

注意:虽然此包仅识别由 The PHP League 官方不支持 的适配器,但它 确实 依赖于 danhunsaker/laravel-flysystem-service,因此安装此包 允许你使用它们。

安装

这里适用了使用 Composer 的常规方法

composer require danhunsaker/laravel-flysystem-others

此包使用 Laravel 的服务提供者自动发现功能,但如果你正在使用 5.5 之前的 Laravel 版本,你仍然需要注册一个服务 - 但只需要一个,至少你不需要 编写 它。务必 替换 Illuminate\Filesystem\FilesystemServiceProvider::class 行为新的行

// In config/app.php

    'providers' => [
        // ...
        Danhunsaker\Laravel\Flysystem\FlysystemOtherServiceProvider::class,
        // ...
    ],

由于 FlysystemOtherServiceProvider 扩展自 danhunsaker/laravel-flysystem-service 中的 FlysystemServiceProvider,因此你也不需要添加它。实际上,这样做可能会在你的应用程序中引起一些问题,因为两个提供者将同时尝试处理 PHP League 驱动程序。

当然,你还需要阅读其 README,以了解它支持哪些选项,这个包可以依赖,例如缓存装饰器的选项。

设置

为了增加灵活性,例如在远程存储上打开 ZIP 文件的能力,你还可以安装 twistor/flysystem-stream-wrapper,该工具会将你的 config/filesystems.php 文件中的每个驱动程序注册为流协议(尽管只有在首次访问时才会这样做,除非你在配置中将它们添加到 autowrap 参数中)。在访问远程 ZIP 文件的示例中,你只需在 ZIP 文件的路径前加上它可用的驱动程序名称,作为 URL 方案(例如 dropbox://path/to/file.zip)。

最后,与 danhunsaker/laravel-flysystem-service 一样,你可以通过发布替换的 filesystems 配置来获取所有支持文件系统驱动程序的示例定义 - 只需运行以下 Artisan 命令

php artisan vendor:publish --provider=Danhunsaker\\Laravel\\Flysystem\\FlysystemOtherServiceProvider --force

需要 --force 标志来覆盖 Laravel 一起提供的现有 filesystems 配置。如果你希望保留现有内容以传输到新文件,你也可以重命名现有文件,然后不使用 --force 标志运行命令。

支持的适配器

检查此软件包支持哪些适配器的最佳位置是Composer建议,但这里也提供了一个快速(不一定是最新的)列表。

注意:如果您为相同的存储服务安装了上述适配器中的多个,则仅使用第一个(按命名空间字母顺序排序),除非上面另有说明。

贡献

欢迎在GitHub上提交拉取请求、错误报告等。

安全问题应直接报告给danhunsaker (plus) laraflyplus (at) gmail (dot) com

有关其他信息,请访问GitHub