Ядро
абстрактный класс Kernel реализует KernelInterface, RebootableInterface, TerminableInterface
Ядро — сердце системы Symfony.
Он управляет средой, состоящей из пакетов.
Константы
| VERSION | |
| VERSION_ID | |
| MAJOR_VERSION | |
| MINOR_VERSION | |
| RELEASE_VERSION | |
| EXTRA_VERSION | |
| END_OF_MAINTENANCE | |
| END_OF_LIFE |
Свойства
| protected BundleInterface[] | $bundles | ||
| protected | $container | ||
| protected | $rootDir | ||
| protected | $environment | ||
| protected | $debug | ||
| protected | $booted | ||
| protected | $name | ||
| protected | $startTime |
Методы
| __construct(string $environment, bool $debug) | ||
| __clone() | ||
| boot() Запускает текущее ядро. | ||
| reboot(string|null $warmupDir) Перезапускает ядро. | ||
| terminate(Request $request, Response $response) Завершает цикл запроса/ответа. | ||
| shutdown() Выключает ядро. | ||
| Response | handle(Request $request, int $type = HttpKernelInterface::MASTER_REQUEST, bool $catch = true) Обрабатывает запрос для преобразования в ответ. | |
| HttpKernel | getHttpKernel() Получает HTTP-ядро из контейнера. | |
| BundleInterface[] | getBundles() Получает зарегистрированные экземпляры пакетов. | |
| BundleInterface | getBundle(string $name) Возвращает пакет. | |
| string|array | locateResource(string $name, string $dir = null, bool $first = true) Возвращает путь к файлу для заданного ресурса пакета. | |
| string | getName() Получает имя ядра. | |
| string | getEnvironment() Получает среду. | |
| bool | isDebug() Проверяет, включен ли режим отладки. | |
| string | getRootDir() Получает корневой каталог приложения (путь к классу Kernel проекта). | |
| string | getProjectDir() Получает корневой каталог приложения (путь к файлу composer проекта). | |
| ContainerInterface|null | getContainer() Получает текущий контейнер. | |
| setAnnotatedClassCache(array $annotatedClasses) | ||
| int | getStartTime() Получает время начала запроса (недоступно, если отладка отключена). | |
| string | getCacheDir() Получает каталог кэша. | |
| string | getLogDir() Получает каталог логов. | |
| string | getCharset() Получает кодировку приложения. | |
| array | getAnnotatedClassesToCompile() Получает шаблоны, определяющие классы для анализа и кэширования аннотаций. | |
| initializeBundles() Инициализирует пакеты. | ||
| build(ContainerBuilder $container) Точка расширения, аналогичная методу Bundle::build(). | ||
| string | getContainerClass() Получает класс контейнера. | |
| string | getContainerBaseClass() Получает базовый класс контейнера. | |
| initializeContainer() Инициализирует контейнер сервисов. | ||
| array | getKernelParameters() Возвращает параметры ядра. | |
| ContainerBuilder | buildContainer() Строит контейнер сервисов. | |
| prepareContainer(ContainerBuilder $container) Подготавливает ContainerBuilder перед его компиляцией. | ||
| ContainerBuilder | getContainerBuilder() Получает новый экземпляр ContainerBuilder, используемый для построения контейнера сервисов. | |
| dumpContainer(ConfigCache $cache, ContainerBuilder $container, string $class, string $baseClass) Выводит контейнер сервисов в PHP-код в кэше. | ||
| DelegatingLoader | getContainerLoader(ContainerInterface $container) Возвращает загрузчик для контейнера. | |
| static string | stripComments(string $source) Удаляет комментарии из строки PHP-кода. | |
| serialize() | ||
| unserialize($data) |
Детали
__construct(string $environment, bool $debug)
Параметры
| string | $environment | |
| bool | $debug |
__clone()
boot()
Запускает текущее ядро.
reboot(string|null $warmupDir)
Перезапускает ядро.
Метод getCacheDir() перезапускаемого ядра не должен вызываться во время построения контейнера. Используйте параметр %kernel.cache_dir% вместо него.
Параметры
| string|null | $warmupDir | передайте null, чтобы перезапустить в обычном каталоге кэша |
terminate(Request $request, Response $response)
Завершает цикл запроса/ответа.
Должен вызываться после отправки ответа и перед завершением работы ядра.
Параметры
| Request | $request | |
| Response | $response |
shutdown()
Завершает работу ядра.
Этот метод полезен в основном при функциональном тестировании.
Response handle(Request $request, int $type = HttpKernelInterface::MASTER_REQUEST, bool $catch = true)
Обрабатывает запрос, чтобы преобразовать его в ответ.
Когда $catch равно true, реализация должна перехватывать все исключения и сделать все возможное, чтобы преобразовать их в экземпляр Response.
Параметры
| Request | $request | Экземпляр Request |
| int | $type | Тип запроса (один из HttpKernelInterface::MASTER_REQUEST или HttpKernelInterface::SUB_REQUEST) |
| bool | $catch | Перехватывать ли исключения |
Значение возврата
| Response | Экземпляр Response |
Исключения
| Exception | При возникновении исключения во время обработки |
protected HttpKernel getHttpKernel()
Получает HTTP-ядро из контейнера.
Значение возврата
| HttpKernel |
BundleInterface[] getBundles()
Получает зарегистрированные экземпляры пакетов.
Значение возврата
| BundleInterface[] | Массив зарегистрированных экземпляров пакетов |
BundleInterface getBundle(string $name)
Возвращает пакет.
Параметры
| string | $name | Имя пакета |
Значение возврата
| BundleInterface | Экземпляр BundleInterface |
Исключения
| InvalidArgumentException | если пакет не включен |
string|array locateResource(string $name, string $dir = null, bool $first = true)
Возвращает путь к файлу для заданного ресурса пакета.
Ресурс может быть файлом или каталогом.
Имя ресурса должно соответствовать следующему шаблону:
"@BundleName/path/to/a/file.something"
где BundleName — имя пакета, а оставшаяся часть — относительный путь в пакете.
Если передан $dir, и первый сегмент пути — «Resources», этот метод будет искать файл с именем:
$dir/<BundleName>/path/without/Resources
перед поиском в папке ресурсов пакета.
Параметры
| string | $name | Имя ресурса для поиска |
| string | $dir | Каталог, где сначала следует искать ресурс |
| bool | $first | Возвращать первый путь или пути для всех соответствующих пакетов |
Значение возврата
| string|array | Абсолютный путь к ресурсу или массив, если $first равно false |
Исключения
| InvalidArgumentException | если файл не найден или имя некорректно |
| RuntimeException | если имя содержит недопустимые/опасные символы |
string getName()
Получает имя ядра.
Значение возврата
| string | Имя ядра |
string getEnvironment()
Получает среду.
Значение возврата
| string | Текущая среда |
bool isDebug()
Проверяет, включен ли режим отладки.
Значение возврата
| bool | true, если режим отладки включен, иначе false |
string getRootDir()
Получает корневой каталог приложения (путь к классу Kernel проекта).
Значение возврата
| string | Корневой каталог ядра |
string getProjectDir()
Получает корневой каталог приложения (путь к файлу composer проекта).
Значение возврата
| string | Корневой каталог проекта |
ContainerInterface|null getContainer()
Получает текущий контейнер.
Значение возврата
| ContainerInterface|null | Экземпляр ContainerInterface или null, когда ядро завершено |
setAnnotatedClassCache(array $annotatedClasses)
Параметры
| array | $annotatedClasses |
int getStartTime()
Получает время начала запроса (не доступно, если отладка отключена).
Значение возврата
| int | Маркер времени начала запроса |
string getCacheDir()
Получает каталог кэша.
Значение возврата
| string | Каталог кэша |
string getLogDir()
Получает каталог журнала.
Значение возврата
| string | Каталог журнала |
string getCharset()
Получает кодировку приложения.
Значение возврата
| string | Кодировка |
array getAnnotatedClassesToCompile()
Получает шаблоны, определяющие классы для анализа и кэширования аннотаций.
Значение возврата
| array |
protected initializeBundles()
Инициализирует пакеты.
Исключения
| LogicException | если два пакета имеют общее имя |
protected build(ContainerBuilder $container)
Точка расширения, аналогичная методу Bundle::build().
Используйте этот метод для регистрации компиляционных проходов и изменения контейнера во время процесса построения.
Параметры
| ContainerBuilder | $container |
protected string getContainerClass()
Получает класс контейнера.
Значение возврата
| string | Класс контейнера |
protected string getContainerBaseClass()
Получает базовый класс контейнера.
Все имена, кроме Container, должны быть полностью квалифицированными.
Значение возврата
| string |
protected initializeContainer()
Инициализирует контейнер сервисов.
Кэшированная версия контейнера сервисов используется при свежей версии, в противном случае контейнер создается.
protected array getKernelParameters()
Возвращает параметры ядра.
Значение результата
| array | Массив параметров ядра |
protected ContainerBuilder buildContainer()
Строит контейнер сервисов.
Значение результата
| ContainerBuilder | Скомпилированный контейнер сервисов |
Исключения
| RuntimeException |
protected prepareContainer(ContainerBuilder $container)
Подготавливает ContainerBuilder перед компиляцией.
Параметры
| ContainerBuilder | $container |
protected ContainerBuilder getContainerBuilder()
Получает новый экземпляр ContainerBuilder, используемый для построения контейнера сервисов.
Значение результата
| ContainerBuilder |
protected dumpContainer(ConfigCache $cache, ContainerBuilder $container, string $class, string $baseClass)
Выводит контейнер сервисов в код PHP в кэше.
Параметры
| ConfigCache | $cache | Кэш конфигурации |
| ContainerBuilder | $container | Контейнер сервисов |
| string | $class | Имя класса для генерации |
| string | $baseClass | Имя базового класса контейнера |
protected DelegatingLoader getContainerLoader(ContainerInterface $container)
Возвращает загрузчик для контейнера.
Параметры
| ContainerInterface | $container |
Значение результата
| DelegatingLoader | Загрузчик |
static string stripComments(string $source)
Удаляет комментарии из строки кода PHP.
Мы не используем функцию PHP php_strip_whitespace(), так как хотим, чтобы содержимое было читаемым и хорошо отформатированным.
Параметры
| string | $source | Строка PHP |
Значение результата
| string | Строка PHP без комментариев |
serialize()
unserialize($data)
Параметры
| $data |
© 2004–2017 Fabien Potencier
Licensed under the MIT License.
https://api.symfony.com/4.1/Symfony/Component/HttpKernel/Kernel.html