Download the PHP package thib92/flysystem-public-url-plugin without Composer
On this page you can find all versions of the php package thib92/flysystem-public-url-plugin. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download thib92/flysystem-public-url-plugin
More information about thib92/flysystem-public-url-plugin
Files in thib92/flysystem-public-url-plugin
Package flysystem-public-url-plugin
Short Description A Flysystem plugin to get the public URL of a file
License MIT
Informations about the package flysystem-public-url-plugin
Flysystem Public URL Plugin
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:
Then, add the plugin to your Flysystem filesystem:
Finally, use it as a regular Flysystem plugin:
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:
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