Illuminate\Contracts, ServiceProvider, Artisan commands) may not directly map to this skeleton’s design. The package’s Symfony-inspired architecture (e.g., Bundle base class) could introduce friction unless refactored.laravel/framework, illuminate/*).psr-4 in composer.json. The skeleton’s namespace structure (e.g., Blast\Bundle\*) would need to be adapted to avoid collisions with Laravel’s App\, Vendor\, or Illuminate\ namespaces.register() and boot() in a ServiceProvider. The skeleton’s Bundle class would need to extend Laravel’s Illuminate\Support\ServiceProvider or implement equivalent hooks.Bundle classes to ServiceProvider or Package classes.resources/config/ → Laravel’s config/).DependencyInjection) with Laravel’s container or bindings.Why Symfony Bundles?
laravel/package-boilerplate)?Customization Requirements
spatie/laravel-package-tools)?Long-Term Viability
Team Familiarity
Laravel Compatibility:
Bundle classes with Laravel ServiceProvider or standalone classes.Extension → Laravel’s config() helpers).ContainerBuilder vs. Laravel’s Container).Alternative Stacks:
Assessment Phase:
Hybrid Integration (High Risk):
ServiceProvider to bridge the gap:
// Example: Bridge Symfony Bundle to Laravel
class BlastBundleServiceProvider extends ServiceProvider {
public function register() {
$bundle = new \Blast\Bundle\SkeletonBundle();
// Manually load Symfony services into Laravel container
foreach ($bundle->getServices() as $id => $service) {
$this->app->singleton($id, fn($c) => $service);
}
}
}
Fork and Adapt:
laravel-bundle-skeleton), and rewrite critical parts to use Laravel’s:
Illuminate\Contracts instead of Symfony’s interfaces.Artisan commands instead of Symfony’s Console components.Abandon and Replace:
spatie/laravel-package-tools for scaffolding.orchestra/testbench for testing.ServiceProvider and Facades.symfony/dependency-injection).Prototype:
Incremental Adoption:
Deprecation Plan:
Blast\Bundle\SkeletonBundle loading unnecessary services globally.EventDispatcher vs. Laravel’s Events system could lead to duplicate or conflicting event listeners.Extension vs. Laravel’s config()) may cause silent overrides.Resources/config/, DependencyInjection).How can I help you explore Laravel packages today?