thib92/flysystem-public-url-plugin

一个获取文件公开URL的Flysystem插件

0.2.0 2019-05-04 18:33 UTC

README

此仓库是Flysystem PHP库的插件。

它允许您获取访问文件的公开URL。

入门

首先,使用Compos添加此插件到依赖

composer require thib92/flysystem-public-url-plugin

然后,将插件添加到您的Flysystem文件系统

<?php
$adapter = new \League\Flysystem\Adapter\Local(__DIR__.'/path/to/root/');
$filesystem = new \League\Flysystem\Filesystem($adapter);
$filesystem->addPlugin(new \Thib\FlysystemPublicUrlPlugin\PublicUrlPlugin);

最后,像常规Flysystem插件一样使用它

<?php
$filesystem->getPublicUrl("/path/to/my/file");

支持的适配器

支持的Flysystem适配器包括

适配器选项

某些适配器需要选项。例如,Local Flysystem不知道上传目录是否由web服务器提供服务。

为了设置设置,您可以使用PublicUrlPlugin的setParam方法。例如

<?php
$plugin = new \Thib\FlysystemPublicUrlPlugin\PublicUrlPlugin();
$plugin->setParam(\Thib\FlysystemPublicUrlPlugin\Adapter\LocalUrlAdapter::class, [
    "/path/to/webserver/root"
]);

setParam的第一个参数是您使用的PublicUrlAdapter的类。
第二个参数是这个适配器构造函数参数的顺序数组。请参阅下面的各个适配器文档以了解需要设置什么

适配器参考

添加自己的适配器

如果您需要其他Flysystem适配器的适配器,需要两个步骤

1. 创建您的Adapter类

您的Adapter类需要扩展AbstractPublicUrlAdapter。您将直接通过$this->filesystem获取文件系统的实例。您需要实现getPublicUrl(string $path): string方法。

2. 在插件中注册它

然后您需要使用PublicUrlPlugin::addAdapter方法注册您的适配器。此方法接受3个参数

  • PublicUrlAdapter工作对应的Flysystem适配器类
  • 您的PublicUrlAdapter类(插件将在每次调用getPublicUrl()时创建一个新的实例)
  • 可选:构造函数参数数组,请参阅适配器选项

贡献

我只为一个项目的需求创建了此插件。我只使用了AWS S3和Local适配器。因此,如果您创建了一个适配器,请随意在此存储库中创建带有您的代码的PR。别忘了添加测试