thib92 / flysystem-public-url-plugin
一个获取文件公开URL的Flysystem插件
0.2.0
2019-05-04 18:33 UTC
Requires
- league/flysystem: ^1.0
Requires (Dev)
- league/flysystem-aws-s3-v3: ^1.0@dev
- phpunit/phpunit: ^7
This package is auto-updated.
Last update: 2024-09-21 22:36:20 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。别忘了添加测试
- 单元测试在tests/Adapter文件夹中
- 集成测试在tests/PublicUrlPluginTest文件中,用于对插件的集成测试