nao-pon/elfinder-flysystem-driver-ext
Extended Flysystem driver for elFinder (nao-pon/elfinder), adding broader filesystem adapter support to connect elFinder’s file manager to various storage backends through Flysystem, including extra/legacy adapters beyond the core driver.
elFinder (a file manager) to integrate with Flysystem, a PHP filesystem abstraction layer. This is a niche but valuable fit for applications requiring:
Storage facade) makes this a low-friction addition for Laravel apps needing a file manager.elFinder—not a standalone solution. Requires existing elFinder setup.elFinder (v2.x) + Flysystem (v1.x or v2.x).league/flysystem-* adapters (e.g., aws, local) must be pre-configured.Storage facade (e.g., Storage::disk('s3')->url()).elFinder config to use the custom driver.| Risk Area | Severity | Mitigation Strategy |
|---|---|---|
| Driver Stability | Medium | Test with Flysystem v2.x (if Laravel uses it). |
| elFinder Version Lock | High | Ensure elFinder v2.x compatibility. |
| Laravel Caching | Low | Clear cache (php artisan cache:clear) if filesystem changes break UI. |
| Performance | Medium | Benchmark with large files (>100MB). |
| Security | Medium | Validate file uploads (e.g., MIME types) via Laravel middleware. |
elFinder’s native drivers? (e.g., S3, FTP) instead of Flysystem?
elFinder already in use? If not, what’s the alternative file manager (e.g., Dropzone, Vue File Upload)?fruitscuk/laravel-flysystem)?Storage facade (e.g., Storage::disk('s3')).barbushin/php-elFinder) or Laravel packages (e.g., spatie/laravel-elFinder).filesystems.php with target adapters (e.g., S3, local).'disks' => [
's3' => [
'driver' => 's3',
'key' => env('AWS_ACCESS_KEY_ID'),
'secret' => env('AWS_SECRET_ACCESS_KEY'),
'bucket' => 'my-bucket',
],
],
elFinder (e.g., via spatie/laravel-elFinder).nao-pon/elfinder-flysystem-driver-ext.elFinder’s init config to use the Flysystem driver:
// elFinder init
$('#elfinder').elfinder({
url: '/elFinder/connector', // Laravel route
options: {
drivers: ['Flysystem'], // Use custom driver
root: '/storage/s3', // Map to Laravel disk
}
});
| Component | Compatibility Notes |
|---|---|
| Flysystem v1.x | May work but v2.x recommended (Laravel 9+). |
| elFinder v2.x | Required; v1.x unsupported. |
| Laravel | Tested with Laravel 8/9 (Flysystem v2.x). |
| Frontend | jQuery required for default UI. Vue/React needs custom API endpoints. |
| Storage Adapters | S3/GCS/Azure: Works (if adapter supports operations). Local/FTP: Limited (e.g., no CHMOD). |
elFinder integration fails.elFinder, Flysystem, and Laravel’s Storage facade.elFinder or Flysystem v3.x.composer.json:
"require": {
"nao-pon/elfinder-flysystem-driver-ext": "dev-main",
"league/flysystem": "^2.0",
"barbushin/php-elFinder": "^2.1"
}
storage/logs/laravel.log for Flysystem failures.elFinder requests.chmod (e.g., S3).memory_limit or S3 timeout limits.spatie/image-optimizer).| Failure Scenario | Impact | Recovery Strategy |
|---|---|---|
| Flysystem Adapter Crash | File operations fail silently. | Fallback to local storage or notify users. |
| elFinder JS Errors | UI broken. | Serve static file manager (e.g., Dropzone). |
| S3/GCS Timeouts | Slow uploads/deletes. | Increase AWS timeout settings. |
| Permission Denied | Users can’t access files. | Audit IAM roles or Flysystem config. |
| Database Lock Contention | Concurrent edits fail. | Implement retry logic with exponential backoff. |
elFinder.How can I help you explore Laravel packages today?