thib92/flysystem-public-url-plugin 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

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:

统计信息

  • 总下载量: 11.58k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 3
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 3
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2019-05-01

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固