common-gateway/notifications-bundle
symfony/console, symfony/dependency-injection, or symfony/process) or adopt Symfony’s plugin architecture for extensibility.symfony/console, symfony/dependency-injection, and symfony/flex as Laravel packages.Bundle system. A custom adapter would be needed to map Symfony bundles to Laravel service providers.commongateway:install commands. Laravel’s migrations system would need to be bridged (e.g., via a custom Artisan command or a wrapper class).spatie/laravel-package-tools for discovery).| Risk Area | Severity | Mitigation Strategy |
|---|---|---|
| Symfony-Laravel Gap | High | Abstract Symfony dependencies into Laravel-compatible interfaces (e.g., Contract classes). |
| Plugin Discovery | Medium | Use spatie/laravel-package-tools to mimic Symfony Flex’s autoloading. |
| Schema Conflicts | Medium | Create a migration adapter to translate Symfony schema commands to Laravel. |
| Admin UI Incompatibility | High | Build a separate Laravel admin module for plugin management. |
| Maintenance Overhead | High | Only adopt if the project must use Common Gateway; otherwise, build a custom Laravel solution. |
spatie/laravel-notification-channels)?Bundle classes, ContainerBuilder) require:
composer require symfony/console symfony/dependency-injection symfony/flex
CommonGatewayServiceProvider to bridge Symfony’s Bundle system to Laravel’s container.Illuminate\Notifications.spatie/laravel-notification-channels-*.spatie/laravel-package-tools for discovery.vendor/bin or a symfony namespace.Bundle functionality (e.g., CommonGatewayBundle extending Laravel’s ServiceProvider).commongateway:install command and rewrite it as a Laravel Artisan command (e.g., php artisan commongateway:install).Schema::create() or Migrations to handle schema installation.spatie/laravel-package-tools to enable plugin discovery.config/plugins.php).| Component | Compatibility Status | Workaround |
|---|---|---|
Symfony Bundle |
❌ No | Abstract into Laravel ServiceProvider or use interfaces. |
ContainerBuilder |
⚠️ Partial | Use Laravel’s container with Symfony’s CompilerPass via a facade. |
| Artisan Commands | ✅ Yes | Rewrite commands as Laravel Artisan commands. |
| Database Schemas | ⚠️ Partial | Adapt migrations or use raw SQL. |
| Plugin Discovery | ❌ No | Implement custom discovery via spatie/laravel-package-tools. |
| Admin UI Integration | ❌ No | Build a separate Laravel admin module. |
Bundle system is heavier than Laravel’s service providers. Overuse could impact autoloading and memory usage.| Scenario | Impact | Mitigation |
|---|---|---|
| Symfony-Laravel Version Conflict | ❌ Breaks installation | Pin exact versions of Symfony components in composer.json. |
| Plugin Installation Fails | ⚠️ Partial functionality | Rollback migrations; use composer why-not to debug dependencies. |
| Admin UI Plugin Manager Fails | ⚠️ Manual plugin management | Provide CLI |
How can I help you explore Laravel packages today?