Download the PHP package matthiasnoback/symfony-bundle-plugins without Composer
On this page you can find all versions of the php package matthiasnoback/symfony-bundle-plugins. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download matthiasnoback/symfony-bundle-plugins
More information about matthiasnoback/symfony-bundle-plugins
Files in matthiasnoback/symfony-bundle-plugins
Package symfony-bundle-plugins
Short Description Allow Symfony bundles to have plugins
License MIT
Homepage http://github.com/matthiasnoback/symfony-bundle-plugins
Informations about the package symfony-bundle-plugins
Symfony Bundle Plugins
By Matthias Noback
This package helps you create extensible bundles, by introducing a plugin system for bundles. Each bundle plugin can define its own services and configuration. This basically makes your bundles conform to the open/closed principle.
Setup
Install this library in your project by running
composer require matthiasnoback/symfony-bundle-plugins
Example
First, your bundle should extend BundleWithPlugins
. You need to implement
the getAlias
method. It should return the name of your bundle's
configuration key (as it will be used in config.yml
for instance).
Each plugin for the bundle should implement BundlePlugin
:
When instantiating this bundle in your AppKernel
class, you can provide any
number of BundlePlugin
instances:
If some of the plugins are required, just introduce a CorePlugin
and make
sure it is always registered by overriding your bundle's
alwaysRegisteredPlugins()
method:
Register compiler passes
When a bundle plugin needs to register a compiler pass, it can do so in its
build()
method.
Booting a plugin
Whenever the main bundle is booted, plugins are allowed to do some runtime
initialization as well. They can do this in their boot()
method. At that
time, the fully initialized service container is available:
Simple plugins
If your plugin is quite simple (i.e. only needs a load()
method), just make
the plugin class extend SimpleBundlePlugin
which contains stub
implementations for the interface methods that you won't need.
Thanks
To @dennisdegreef for reviving the test suite of this project.
All versions of symfony-bundle-plugins with dependencies
symfony/http-kernel Version ^2.3|^3.0
symfony/dependency-injection Version ^2.3|^3.0
symfony/config Version ^2.3|^3.0