Download the PHP package ashleydawson/multibundle without Composer
On this page you can find all versions of the php package ashleydawson/multibundle. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download ashleydawson/multibundle
More information about ashleydawson/multibundle
Files in ashleydawson/multibundle
Package multibundle
Short Description Register multiple bundles within the Symfony2 kernel
License MIT
Informations about the package multibundle
Symfony2 MultiBundle
Register multiple, dependant bundles within the Symfony2 kernel
Requirements
Introduction
When developing solutions that use a multi-bundle configuration in Symfony2 - this library provides an unobtrusive way of logically grouping dependant bundles together so that they can be registered with the Symfony kernel in one command.
The reason for building this helper is so that you can manage parallel dependant bundles. Alternatively you could use bundle inheritance to solve this problem - but that may violate the single responsibility principal as the child bundle may have a different responsibility to its parent.
Installation
You can install multi-bundle via Composer. To do that, simply require the package in your composer.json file like so:
Run composer update to install the package.
Basic Usage
Step one is to extend the AbstractMultiBundle instead of the Bundle that ships with Symfony2. This abstract class allows you to define your grouped bundles as well as expose a registerInto() method for use in the Symfony2 kernel.
Step two is to then register your bundle in the Symfony2 kernel, like so:
Note: You don't need to register the dependencies in the usual way now as the registerInto()
method takes care of
that. Also, don't worry about your bundle trying to register duplicate bundles as de-duplication is built in.
Note: The registerInto()
method will automatically register the parent bundle as well as it's dependencies, so you
don't need to specify the parent bundle in the getBundles()
return array.
Environment Grouping
Sometimes it's necessary to group bundles by environment. An example of this is that you may not require development bundles
in production. To do this, simply specify the environment groups within the getBundles()
method:
Then, in the kernel, filter the registration of bundles using the second argument of the registerInto()
method:
The Symfony2 standard edition already has similar logic in the app/AppKernel.php
.