thib92/flysystem-public-url-plugin
最新稳定版本:0.2.0
Composer 安装命令:
composer require thib92/flysystem-public-url-plugin
包简介
A Flysystem plugin to get the public URL of a file
README 文档
README
This repo is a plugin for the Flysystem PHP library.
It allows you to get a public URL to access a file.
Getting started
Start by adding this plugin to your dependencies using Compose:
composer require thib92/flysystem-public-url-plugin
Then, add the plugin to your Flysystem filesystem:
<?php $adapter = new \League\Flysystem\Adapter\Local(__DIR__.'/path/to/root/'); $filesystem = new \League\Flysystem\Filesystem($adapter); $filesystem->addPlugin(new \Thib\FlysystemPublicUrlPlugin\PublicUrlPlugin);
Finally, use it as a regular Flysystem plugin:
<?php $filesystem->getPublicUrl("/path/to/my/file");
Supported adapters
The supported Flysystem adapters are:
Adapters options
Some adapters need options.
For example, the Local Flysystem does not know if the upload directory is served by a webserver.
In order to set settings, you can use the setParam method of the PublicUrlPlugin. For example:
<?php $plugin = new \Thib\FlysystemPublicUrlPlugin\PublicUrlPlugin(); $plugin->setParam(\Thib\FlysystemPublicUrlPlugin\Adapter\LocalUrlAdapter::class, [ "/path/to/webserver/root" ]);
The first argument of setParam is the class of the PublicUrlAdapter you use.
The second one is a sequential array of constructor arguments for this adapter.
Refer to the individual adapter documentations below to know what to set
Adapters reference
| Flysystem Adapter | Public URL Adapter | Constructor arguments |
|---|---|---|
| Local | LocalUrlAdapter | * Public webserver root path |
| AWS S3 v3 | AwsS3UrlAdapter | None |
Adding your own adapter
If you need an adapter for another Flysystem adapter, two steps are required:
1. Create your Adapter class
Your Adapter class will need to extend the AbstractPublicUrlAdapter.
You will directly get a reference to the filesystem instance with $this->filesystem.
You will need to implement the getPublicUrl(string $path): string method.
2. Register it in the plugin
Then you need to use the PublicUrlPlugin::addAdapter method to register your adapter.
This method takes 3 arguments:
- The Flysystem adapter class that your PublicUrlAdapter works for
- Your PublicUrlAdapter class (the plugin will create a new instance on every call to
getPublicUrl()) - Optional: an array of constructor arguments, see Adapter Options
Contributing
I only created this plugin for the needs of a project I had. I only used the AWS S3 and the Local adapters. Therefore, if you create an adapter, feel free to create a PR on this repo with your code. Don't forget to add tests:
- Unit tests in the tests/Adapter folder
- Integration tests in tests/PublicUrlPluginTest file for an integration test to the plugin
统计信息
- 总下载量: 11.56k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 3
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2019-05-01