eDemyBackupBundle is designed specifically for the eDemy Framework, a niche PHP framework (not Laravel). Laravel’s ecosystem (Symfony components, Composer autoloading, service container) differs significantly in architecture, making direct adoption non-trivial.spatie/laravel-backup, backup-manager, or custom scripts using Symfony/Process + ZipArchive). This bundle’s value proposition is unclear for Laravel projects unless tightly coupled with eDemy’s proprietary components (e.g., ORM, caching, or event systems).edemy/framework, custom database abstractions). Laravel’s composer.json would reject these unless:
edemy_backup.yml) would require a custom parser or middleware to translate to Laravel’s config/backup.php.BackupStartedEvent). Laravel’s event system would need adapters or mock implementations.Flysystem integration would need bridging.DB::dump() or spatie/laravel-backup.Why Not Existing Solutions?
spatie/laravel-backup or backup-manager?Abstraction Feasibility
Community/Adoption
php-backup-manager) that could serve as a reference?Laravel-Specific Gaps
local, s3)?AppServiceProvider vs. eDemy’s DI container.Route::macro() vs. eDemy’s event system.config/backup.php vs. eDemy’s YAML files.edemy/db for illuminate/database).Schedule facade.BackupService facade to route to the bundle’s logic.Assessment Phase (2–4 weeks)
spatie/laravel-backup) for performance/cost.Refactoring Phase (4–8 weeks)
bind() methods).config/backup.php).Storage facade).Validation Phase (2 weeks)
| Laravel Feature | Compatibility Risk | Mitigation Strategy |
|---|---|---|
| Eloquent ORM | Bundle may use raw SQL or eDemy’s ORM. | Rewrite queries or use Eloquent’s toSql(). |
| Queue Workers | Bundle may use eDemy’s job system. | Replace with Laravel’s Bus facade. |
| Filesystem Disks | Bundle may hardcode storage paths. | Use Laravel’s Storage facade. |
| Artisan Commands | Bundle may lack CLI integration. | Create a custom Artisan command wrapper. |
| Multi-Tenancy | Bundle may not support Laravel’s tenancy packages. |
Abstract tenant logic via middleware. |
Phase 1: Core Backup Logic
DB::connection()->getPdo()->query("CREATE DATABASE backup...").Phase 2: Storage Integration
Storage facade.eDemy\Storage\S3 with League\Flysystem\S3v3Adapter.Phase 3: Scheduling & Events
Schedule facade.eDemy\Backup\Scheduler with App\Console\Kernel events.Phase 4: UI/Notifications
Notification facade (e.g., email, Slack).Notifiable interface for backup completion alerts.PDO::MYSQL, the backup logic may break.edemy/framework/src/Backup/Engine.php) will be opaque in Laravel’s logs.How can I help you explore Laravel packages today?