Kernel

class Kernel implements KernelInterface, RebootableInterface, TerminableInterface

The Kernel is the heart of the Symfony system.

It manages an environment made of bundles.

Constants

VERSION
VERSION_ID
MAJOR_VERSION
MINOR_VERSION
RELEASE_VERSION
EXTRA_VERSION
END_OF_MAINTENANCE
END_OF_LIFE

Methods

__construct(string $environment, bool $debug)
__clone()
boot()

Boots the current kernel.

reboot(string|null $warmupDir)

Reboots a kernel.

terminate(Request $request, Response $response)

Terminates a request/response cycle.

shutdown()

Shutdowns the kernel.

Response handle(Request $request, int $type = HttpKernelInterface::MASTER_REQUEST, bool $catch = true)

Handles a Request to convert it to a Response.

BundleInterface[] getBundles()

Gets the registered bundle instances.

BundleInterface getBundle(string $name)

Returns a bundle.

string|array locateResource(string $name, string $dir = null, bool $first = true)

Returns the file path for a given resource.

string getName()

Gets the name of the kernel.

string getEnvironment()

Gets the environment.

bool isDebug()

Checks if debug mode is enabled.

string getRootDir()

Gets the application root dir (path of the project's Kernel class).

string getProjectDir()

Gets the application root dir (path of the project's composer file).

ContainerInterface getContainer()

Gets the current container.

setAnnotatedClassCache(array $annotatedClasses)
int getStartTime()

Gets the request start time (not available if debug is disabled).

string getCacheDir()

Gets the cache directory.

string getLogDir()

Gets the log directory.

string getCharset()

Gets the charset of the application.

static string stripComments(string $source)

Removes comments from a PHP source string.

serialize()
unserialize($data)

Details

__construct(string $environment, bool $debug)

Parameters

string $environment
bool $debug

__clone()

boot()

Boots the current kernel.

reboot(string|null $warmupDir)

Reboots a kernel.

The getCacheDir() method of a rebootable kernel should not be called while building the container. Use the %kernel.cache_dir% parameter instead.

Parameters

string|null $warmupDir pass null to reboot in the regular cache directory

terminate(Request $request, Response $response)

Terminates a request/response cycle.

Should be called after sending the response and before shutting down the kernel.

Parameters

Request $request
Response $response

shutdown()

Shutdowns the kernel.

This method is mainly useful when doing functional testing.

Response handle(Request $request, int $type = HttpKernelInterface::MASTER_REQUEST, bool $catch = true)

Handles a Request to convert it to a Response.

When $catch is true, the implementation must catch all exceptions and do its best to convert them to a Response instance.

Parameters

Request $request A Request instance
int $type The type of the request (one of HttpKernelInterface::MASTERREQUEST or HttpKernelInterface::SUBREQUEST)
bool $catch Whether to catch exceptions or not

Return Value

Response A Response instance

Exceptions

Exception When an Exception occurs during processing

BundleInterface[] getBundles()

Gets the registered bundle instances.

Return Value

BundleInterface[] An array of registered bundle instances

BundleInterface getBundle(string $name)

Returns a bundle.

Parameters

string $name Bundle name

Return Value

BundleInterface A BundleInterface instance

Exceptions

InvalidArgumentException when the bundle is not enabled

string|array locateResource(string $name, string $dir = null, bool $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.

Parameters

string $name A resource name to locate
string $dir A directory where to look for the resource first
bool $first Whether to return the first path or paths for all matching bundles

Return Value

string|array The absolute path of the resource or an array if $first is false

Exceptions

InvalidArgumentException if the file cannot be found or the name is not valid
RuntimeException if the name contains invalid/unsafe characters

string getName()

Gets the name of the kernel.

Return Value

string The kernel name

string getEnvironment()

Gets the environment.

Return Value

string The current environment

bool isDebug()

Checks if debug mode is enabled.

Return Value

bool true if debug mode is enabled, false otherwise

string getRootDir()

Gets the application root dir (path of the project's Kernel class).

Return Value

string The Kernel root dir

string getProjectDir()

Gets the application root dir (path of the project's composer file).

Return Value

string The project root dir

ContainerInterface getContainer()

Gets the current container.

Return Value

ContainerInterface A ContainerInterface instance

setAnnotatedClassCache(array $annotatedClasses)

Parameters

array $annotatedClasses

int getStartTime()

Gets the request start time (not available if debug is disabled).

Return Value

int The request start timestamp

string getCacheDir()

Gets the cache directory.

Return Value

string The cache directory

string getLogDir()

Gets the log directory.

Return Value

string The log directory

string getCharset()

Gets the charset of the application.

Return Value

string The charset

static string stripComments(string $source)

Removes comments from a PHP source string.

We don't use the PHP phpstripwhitespace() function as we want the content to be readable and well-formatted.

Parameters

string $source A PHP string

Return Value

string The PHP string with the comments removed

serialize()

unserialize($data)

Parameters

$data

© 2004–2017 Fabien Potencier
Licensed under the MIT License.
http://api.symfony.com/4.0/Symfony/Component/HttpKernel/Kernel.html