4 * This file is part of the Symfony package.
6 * (c) Fabien Potencier <fabien@symfony.com>
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
12 namespace Symfony\Component\HttpKernel\Bundle;
14 use Symfony\Component\DependencyInjection\ContainerAwareInterface;
15 use Symfony\Component\DependencyInjection\ContainerBuilder;
16 use Symfony\Component\DependencyInjection\Extension\ExtensionInterface;
21 * @author Fabien Potencier <fabien@symfony.com>
23 interface BundleInterface extends ContainerAwareInterface
28 public function boot();
31 * Shutdowns the Bundle.
33 public function shutdown();
38 * It is only ever called once when the cache is empty.
40 public function build(ContainerBuilder $container);
43 * Returns the container extension that should be implicitly loaded.
45 * @return ExtensionInterface|null The default extension or null if there is none
47 public function getContainerExtension();
50 * Returns the bundle name that this bundle overrides.
52 * Despite its name, this method does not imply any parent/child relationship
53 * between the bundles, just a way to extend and override an existing
56 * @return string The Bundle name it overrides or null if no parent
58 * @deprecated This method is deprecated as of 3.4 and will be removed in 4.0.
60 public function getParent();
63 * Returns the bundle name (the class short name).
65 * @return string The Bundle name
67 public function getName();
70 * Gets the Bundle namespace.
72 * @return string The Bundle namespace
74 public function getNamespace();
77 * Gets the Bundle directory path.
79 * The path should always be returned as a Unix path (with /).
81 * @return string The Bundle absolute path
83 public function getPath();