becklyn/rad-bundles
Lightweight helpers for Symfony bundles/apps: includes BundleExtensions and ConfigurableBundleExtension to simplify bootstrapping, configuration loading, and extension setup. Useful starting point for building bundles with a consistent, minimal structure.
ContainerInterface vs. Laravel’s Container/ServiceProvider.Extension system vs. Laravel’s config() or package-specific config files.config()).BundleInterface vs. Laravel’s ServiceProvider).symfony/dependency-injection vs. Laravel’s bundled versions).Why Symfony Bundles?
spatie/laravel-package-tools) achieve the same goal with lower risk?Scope of Usage
ContainerAware, Extension) that are critical?Alternatives
nwidart/laravel-modules, orchestra/platform) that provide similar functionality?symfony/dependency-injection without the full bundle)?Long-Term Viability
symfony/framework-bundle or custom bundles).Bundle::getContainer() → Laravel’s app()).// Example: SymfonyBundleHelperServiceProvider.php
public function register() {
$this->app->singleton('symfony.bundle.helper', function () {
return new SymfonyBundleAdapter($this->app);
});
}
SymfonyBundle::getExtension()).symfony/console, symfony/dependency-injection).replace or conflict in composer.json to avoid duplicates:
"extra": {
"laravel": {
"dont-discover": ["symfony/*"] // Prevent Laravel from loading its own Symfony packages
}
}
Bundle namespace; Laravel uses Provider. Rename or alias classes to avoid conflicts.Kernel class and ContainerInterface. Laravel’s Application class won’t natively support this; use a wrapper:
class LaravelSymfonyKernelAdapter implements \Symfony\Component\HttpKernel\KernelInterface {
public function getContainer() {
return new SymfonyContainerAdapter(app());
}
}
twig/twig, symfony/yaml).composer why-not and composer why to audit dependency chains.BundleNotFoundException) may not translate cleanly to Laravel’s error handling.laravel-debugbar or Blackfire to identify bottlenecks.Kernel instance; Laravel’s Application won’t satisfy this.config.yml; Laravel uses config/. Mismatches may lead to silent failures.symfony/routing v5 vs. v6).platform_check in composer.json to enforce compatible versions.CompilerPass, EventDispatcher) may require targeted training.How can I help you explore Laravel packages today?