Package Data | |
---|---|
Maintainer Username: | danhunsaker |
Maintainer Contact: | danhunsaker@gmail.com (Daniel Hunsaker) |
Package Create Date: | 2015-10-23 |
Package Last Update: | 2023-04-29 |
Language: | PHP |
License: | MIT |
Last Refreshed: | 2024-11-20 03:02:06 |
Package Statistics | |
---|---|
Total Downloads: | 31,545 |
Monthly Downloads: | 15 |
Daily Downloads: | 1 |
Total Stars: | 22 |
Total Watchers: | 3 |
Total Forks: | 14 |
Total Open Issues: | 0 |
Registers recognized third-party Flysystem adapters with Laravel automatically.
This lets you use third-party adapters without having to write your own service providers to load them properly. It automatically detects which adapters are available, and registers only the ones actually installed. It also detects whether the Eventable version of Flysystem is available, and if so, it switches to it, letting you listen in on Flysystem events and affect them accordingly.
NOTE: While this package only recognizes adapters NOT officially supported by The PHP League, it does depend on danhunsaker/laravel-flysystem-service, so installing this package will let you use them as well.
The usual methods for using Composer apply here:
composer require danhunsaker/laravel-flysystem-others
This package uses Laravel's auto-discovery feature for the service provider, but
if you're using a Laravel version before 5.5, you do still have to register one
service – but only one, and at least you don't have to write it. Be sure to
REPLACE the Illuminate\Filesystem\FilesystemServiceProvider::class
line
with the new one:
// In config/app.php
'providers' => [
// ...
Danhunsaker\Laravel\Flysystem\FlysystemOtherServiceProvider::class,
// ...
],
And since FlysystemOtherServiceProvider
extends FlysystemServiceProvider
from danhunsaker/laravel-flysystem-service
, you don't need to add it as well.
In fact, doing so will probably cause some issues with your app, as both
providers will attempt to handle the PHP League drivers at the same time.
Of course, you'll want to read through its README
as well, to see what options
it supports that this package piggy-backs on, such as those for the cache
decorator.
For added flexibility, such as the ability to open ZIP files on remote storage,
you can also install twistor/flysystem-stream-wrapper, which will register
each of the drives in your config/filesystems.php
file as a stream protocol
(though only when each is accessed the first time, unless you add them to the
autowrap
parameter in the configuration). In the example of accessing remote
ZIP files, you would then simply need to prefix the ZIP file's path with the
name of the drive it's available on, as a URL scheme (something like
dropbox://path/to/file.zip
).
Finally, as with danhunsaker/laravel-flysystem-service
, you can get example
definitions for all supported filesystem drivers by publishing the replacement
filesystems
config - just run the following Artisan command:
php artisan vendor:publish --provider=Danhunsaker\\Laravel\\Flysystem\\FlysystemOtherServiceProvider --force
The --force
flag is required to overwrite the existing filesystems
config
that ships with Laravel. You can also rename the existing file, then run the
command without the --force
flag, if you'd like to preserve the existing
contents for transfer to the new file.
The best place to check for which adapters are supported by this package is the Composer suggestions, but here's a quick (not-guaranteed-up-to-date) list as well:
Aliyun OSS:
aliyuncs/aliyun-oss-flysystem,
aobozhang/aliyun-oss-adapter,
apollopy/flysystem-aliyun-oss,
orzcc/aliyun-oss,
shion/aliyun-oss,
xxtime/flysystem-aliyun-oss,
monster/flysystem-aliyun-oss (only used if no other oss
adapter is
available, because it uses the League
namespace, but isn't a PHP League
package),
Backblaze B2: mhetreramesh/flysystem-backblaze
Baidu Bos: zhuxiaoqiao/flysystem-baidu-bos
Citrix ShareFile: kapersoft/flysystem-sharefile
ClamAV (Virus Scanning): mgriego/flysystem-clamav
Cloudinary: carlosocarvalho/flysystem-cloudinary, enl/flysystem-cloudinary, t3chnik/flysystem-cloudinary-adapter
Eloquent: rokde/flysystem-local-database-adapter
Fallback: litipk/flysystem-fallback-adapter
GitHub: potherca/flysystem-github
Google Cloud Storage: cedricziel/flysystem-gcs, superbalist/flysystem-google-storage
Google Drive:
ignited/flysystem-google-drive,
nao-pon/flysystem-google-drive,
private-it/flysystem-google-drive (has precendence over nao-pon
)
HTTP (Read-Only): twistor/flysystem-guzzle, twistor/flysystem-http
Mirror: A "meta-adapter" which combines the Fallback and Replicate adapters, if both are available.
OneDrive: ignited/flysystem-onedrive, jacekbarecki/flysystem-onedrive, nicolasbeauvais/flysystem-onedrive
OpenStack Swift: nimbusoft/flysystem-openstack-swift
Qcloud COS: freyo/flysystem-qcloud-cos-v5, freyo/flysystem-qcloud-cos-v4, freyo/flysystem-qcloud-cos-v3 (precendence for this adapter is determined by API version, rather than alphabetical sort)
Qiniu: boofw/flysystem-qiniu, eqingdan/flysystem-qiniu, overtrue/flysystem-qiniu
Redis: danhunsaker/flysystem-redis
Runabove: engineor/flysystem-runabove
Selectel: argentcrusade/flysystem-selectel
SMB/CIFS: robgridley/flysystem-smb
Temp: emgag/flysystem-tempdir
Upyun: jellybool/flysystem-upyun
Yandex: arhitector/yandex-disk-flysystem
NOTE: If you install more than one of the adapters listed above for the same storage service, only the first one – in alphabetical order by namespace – will be used, unless otherwise noted above.
Pull requests, bug reports, and so forth are all welcome on GitHub.
Security issues should be reported directly to danhunsaker (plus) laraflyplus (at) gmail (dot) com.
And head to GitHub for everything else.