9ec4e7a9fc0542fbf030584fc26f5ecd4aa148da
[yaffs-website] / vendor / symfony / http-kernel / KernelInterface.php
1 <?php
2
3 /*
4  * This file is part of the Symfony package.
5  *
6  * (c) Fabien Potencier <fabien@symfony.com>
7  *
8  * For the full copyright and license information, please view the LICENSE
9  * file that was distributed with this source code.
10  */
11
12 namespace Symfony\Component\HttpKernel;
13
14 use Symfony\Component\DependencyInjection\ContainerInterface;
15 use Symfony\Component\HttpKernel\Bundle\BundleInterface;
16 use Symfony\Component\Config\Loader\LoaderInterface;
17
18 /**
19  * The Kernel is the heart of the Symfony system.
20  *
21  * It manages an environment made of bundles.
22  *
23  * @author Fabien Potencier <fabien@symfony.com>
24  */
25 interface KernelInterface extends HttpKernelInterface, \Serializable
26 {
27     /**
28      * Returns an array of bundles to register.
29      *
30      * @return iterable|BundleInterface[] An iterable of bundle instances
31      */
32     public function registerBundles();
33
34     /**
35      * Loads the container configuration.
36      */
37     public function registerContainerConfiguration(LoaderInterface $loader);
38
39     /**
40      * Boots the current kernel.
41      */
42     public function boot();
43
44     /**
45      * Shutdowns the kernel.
46      *
47      * This method is mainly useful when doing functional testing.
48      */
49     public function shutdown();
50
51     /**
52      * Gets the registered bundle instances.
53      *
54      * @return BundleInterface[] An array of registered bundle instances
55      */
56     public function getBundles();
57
58     /**
59      * Returns a bundle and optionally its descendants by its name.
60      *
61      * The second argument is deprecated as of 3.4 and will be removed in 4.0. This method
62      * will always return an instance of BundleInterface in 4.0.
63      *
64      * @param string $name  Bundle name
65      * @param bool   $first Whether to return the first bundle only or together with its descendants
66      *
67      * @return BundleInterface|BundleInterface[] A BundleInterface instance or an array of BundleInterface instances if $first is false
68      *
69      * @throws \InvalidArgumentException when the bundle is not enabled
70      */
71     public function getBundle($name, $first = true);
72
73     /**
74      * Returns the file path for a given resource.
75      *
76      * A Resource can be a file or a directory.
77      *
78      * The resource name must follow the following pattern:
79      *
80      *     "@BundleName/path/to/a/file.something"
81      *
82      * where BundleName is the name of the bundle
83      * and the remaining part is the relative path in the bundle.
84      *
85      * If $dir is passed, and the first segment of the path is "Resources",
86      * this method will look for a file named:
87      *
88      *     $dir/<BundleName>/path/without/Resources
89      *
90      * before looking in the bundle resource folder.
91      *
92      * @param string $name  A resource name to locate
93      * @param string $dir   A directory where to look for the resource first
94      * @param bool   $first Whether to return the first path or paths for all matching bundles
95      *
96      * @return string|array The absolute path of the resource or an array if $first is false
97      *
98      * @throws \InvalidArgumentException if the file cannot be found or the name is not valid
99      * @throws \RuntimeException         if the name contains invalid/unsafe characters
100      */
101     public function locateResource($name, $dir = null, $first = true);
102
103     /**
104      * Gets the name of the kernel.
105      *
106      * @return string The kernel name
107      */
108     public function getName();
109
110     /**
111      * Gets the environment.
112      *
113      * @return string The current environment
114      */
115     public function getEnvironment();
116
117     /**
118      * Checks if debug mode is enabled.
119      *
120      * @return bool true if debug mode is enabled, false otherwise
121      */
122     public function isDebug();
123
124     /**
125      * Gets the application root dir (path of the project's Kernel class).
126      *
127      * @return string The Kernel root dir
128      */
129     public function getRootDir();
130
131     /**
132      * Gets the current container.
133      *
134      * @return ContainerInterface A ContainerInterface instance
135      */
136     public function getContainer();
137
138     /**
139      * Gets the request start time (not available if debug is disabled).
140      *
141      * @return int The request start timestamp
142      */
143     public function getStartTime();
144
145     /**
146      * Gets the cache directory.
147      *
148      * @return string The cache directory
149      */
150     public function getCacheDir();
151
152     /**
153      * Gets the log directory.
154      *
155      * @return string The log directory
156      */
157     public function getLogDir();
158
159     /**
160      * Gets the charset of the application.
161      *
162      * @return string The charset
163      */
164     public function getCharset();
165 }