Chris@0: Chris@0: * Chris@0: * For the full copyright and license information, please view the LICENSE Chris@0: * file that was distributed with this source code. Chris@0: */ Chris@0: Chris@0: namespace Symfony\Component\HttpKernel\Bundle; Chris@0: Chris@0: use Symfony\Component\DependencyInjection\ContainerAwareInterface; Chris@0: use Symfony\Component\DependencyInjection\ContainerBuilder; Chris@0: use Symfony\Component\DependencyInjection\Extension\ExtensionInterface; Chris@0: Chris@0: /** Chris@0: * BundleInterface. Chris@0: * Chris@0: * @author Fabien Potencier Chris@0: */ Chris@0: interface BundleInterface extends ContainerAwareInterface Chris@0: { Chris@0: /** Chris@0: * Boots the Bundle. Chris@0: */ Chris@0: public function boot(); Chris@0: Chris@0: /** Chris@0: * Shutdowns the Bundle. Chris@0: */ Chris@0: public function shutdown(); Chris@0: Chris@0: /** Chris@0: * Builds the bundle. Chris@0: * Chris@0: * It is only ever called once when the cache is empty. Chris@0: */ Chris@0: public function build(ContainerBuilder $container); Chris@0: Chris@0: /** Chris@0: * Returns the container extension that should be implicitly loaded. Chris@0: * Chris@0: * @return ExtensionInterface|null The default extension or null if there is none Chris@0: */ Chris@0: public function getContainerExtension(); Chris@0: Chris@0: /** Chris@0: * Returns the bundle name that this bundle overrides. Chris@0: * Chris@0: * Despite its name, this method does not imply any parent/child relationship Chris@0: * between the bundles, just a way to extend and override an existing Chris@0: * bundle. Chris@0: * Chris@0: * @return string The Bundle name it overrides or null if no parent Chris@14: * Chris@14: * @deprecated This method is deprecated as of 3.4 and will be removed in 4.0. Chris@0: */ Chris@0: public function getParent(); Chris@0: Chris@0: /** Chris@0: * Returns the bundle name (the class short name). Chris@0: * Chris@0: * @return string The Bundle name Chris@0: */ Chris@0: public function getName(); Chris@0: Chris@0: /** Chris@0: * Gets the Bundle namespace. Chris@0: * Chris@0: * @return string The Bundle namespace Chris@0: */ Chris@0: public function getNamespace(); Chris@0: Chris@0: /** Chris@0: * Gets the Bundle directory path. Chris@0: * Chris@0: * The path should always be returned as a Unix path (with /). Chris@0: * Chris@0: * @return string The Bundle absolute path Chris@0: */ Chris@0: public function getPath(); Chris@0: }