2015-08-17 17:00:26 -07:00
< ? php
/*
* This file is part of the Symfony package .
*
* ( c ) Fabien Potencier < fabien @ symfony . com >
*
* For the full copyright and license information , please view the LICENSE
* file that was distributed with this source code .
*/
namespace Symfony\Component\HttpKernel ;
2018-11-23 12:29:20 +00:00
use Symfony\Component\Config\Loader\LoaderInterface ;
2015-08-17 17:00:26 -07:00
use Symfony\Component\DependencyInjection\ContainerInterface ;
use Symfony\Component\HttpKernel\Bundle\BundleInterface ;
/**
* The Kernel is the heart of the Symfony system .
*
* It manages an environment made of bundles .
*
* @ author Fabien Potencier < fabien @ symfony . com >
*/
interface KernelInterface extends HttpKernelInterface , \Serializable
{
/**
* Returns an array of bundles to register .
*
2018-11-23 12:29:20 +00:00
* @ return iterable | BundleInterface [] An iterable of bundle instances
2015-08-17 17:00:26 -07:00
*/
public function registerBundles ();
/**
* Loads the container configuration .
*/
public function registerContainerConfiguration ( LoaderInterface $loader );
/**
* Boots the current kernel .
*/
public function boot ();
/**
* Shutdowns the kernel .
*
* This method is mainly useful when doing functional testing .
*/
public function shutdown ();
/**
* Gets the registered bundle instances .
*
* @ return BundleInterface [] An array of registered bundle instances
*/
public function getBundles ();
/**
* Returns a bundle and optionally its descendants by its name .
*
2018-11-23 12:29:20 +00:00
* The second argument is deprecated as of 3.4 and will be removed in 4.0 . This method
* will always return an instance of BundleInterface in 4.0 .
*
2015-08-17 17:00:26 -07:00
* @ param string $name Bundle name
* @ param bool $first Whether to return the first bundle only or together with its descendants
*
* @ return BundleInterface | BundleInterface [] A BundleInterface instance or an array of BundleInterface instances if $first is false
*
* @ throws \InvalidArgumentException when the bundle is not enabled
*/
public function getBundle ( $name , $first = true );
/**
* Returns the file path for a given resource .
*
* A Resource can be a file or a directory .
*
* The resource name must follow the following pattern :
*
* " @BundleName/path/to/a/file.something "
*
* where BundleName is the name of the bundle
* and the remaining part is the relative path in the bundle .
*
* If $dir is passed , and the first segment of the path is " Resources " ,
* this method will look for a file named :
*
* $dir /< BundleName >/ path / without / Resources
*
* before looking in the bundle resource folder .
*
* @ param string $name A resource name to locate
* @ param string $dir A directory where to look for the resource first
* @ param bool $first Whether to return the first path or paths for all matching bundles
*
* @ return string | array The absolute path of the resource or an array if $first is false
*
* @ throws \InvalidArgumentException if the file cannot be found or the name is not valid
* @ throws \RuntimeException if the name contains invalid / unsafe characters
*/
public function locateResource ( $name , $dir = null , $first = true );
/**
* Gets the name of the kernel .
*
* @ return string The kernel name
*/
public function getName ();
/**
* Gets the environment .
*
* @ return string The current environment
*/
public function getEnvironment ();
/**
* Checks if debug mode is enabled .
*
* @ return bool true if debug mode is enabled , false otherwise
*/
public function isDebug ();
/**
2018-11-23 12:29:20 +00:00
* Gets the application root dir ( path of the project ' s Kernel class ) .
2015-08-17 17:00:26 -07:00
*
2018-11-23 12:29:20 +00:00
* @ return string The Kernel root dir
2015-08-17 17:00:26 -07:00
*/
public function getRootDir ();
/**
* Gets the current container .
*
2018-11-23 12:29:20 +00:00
* @ return ContainerInterface | null A ContainerInterface instance or null when the Kernel is shutdown
2015-08-17 17:00:26 -07:00
*/
public function getContainer ();
/**
* Gets the request start time ( not available if debug is disabled ) .
*
* @ return int The request start timestamp
*/
public function getStartTime ();
/**
* Gets the cache directory .
*
* @ return string The cache directory
*/
public function getCacheDir ();
/**
* Gets the log directory .
*
* @ return string The log directory
*/
public function getLogDir ();
/**
* Gets the charset of the application .
*
* @ return string The charset
*/
public function getCharset ();
}