Skip to content

Commit

Permalink
Параметр kernel.bundles на проде.
Browse files Browse the repository at this point in the history
  • Loading branch information
ProklUng committed Jan 27, 2022
1 parent 48cd8ce commit 1f10317
Showing 1 changed file with 19 additions and 8 deletions.
27 changes: 19 additions & 8 deletions src/Services/AppKernel.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
* @since 22.10.2020 kernel.schema
* @since 25.10.2020 Наследование от HttpKernel.
* @since 13.12.2020 Создание директории кэша, если она не существует.
* @since 27.01.2022 Баг-фикс с сохранением конфигурации бандлов в прод-режиме.
*/
class AppKernel extends Kernel
{
Expand All @@ -29,7 +30,7 @@ class AppKernel extends Kernel
/**
* @var string $bundlesConfigFile Файл с конфигурацией бандлов.
*/
protected $bundlesConfigFile = '/local/configs/bundles.php';
protected $bundlesConfigFile = '/local/configs/standalone_bundles.php';

/**
* @var boolean $debug Отладка? Оно же служит для определения типа окружения.
Expand Down Expand Up @@ -238,8 +239,6 @@ public function registerContainerConfiguration(LoaderInterface $loader)
* @return iterable|BundleInterface[]
*
* @since 02.06.2021 Если файл не существует - игнорим.
*
* @internal пока не используется. Манипуляции с бандлами - через класс BundlesLoader.
*/
public function registerBundles(): iterable
{
Expand All @@ -249,7 +248,6 @@ public function registerBundles(): iterable
return [];
}

/* @noinspection PhpIncludeInspection */
$contents = require $bundleConfigPath;

foreach ($contents as $class => $envs) {
Expand All @@ -267,7 +265,7 @@ public function registerBundles(): iterable
* @return void
* @throws LogicException Когда проскакивают дубликаты бандлов.
*/
public function registerBundle($bundle) : void
public function registerBundle(object $bundle) : void
{
$name = $bundle->getName();
if (isset($this->bundles[$name])) {
Expand All @@ -288,6 +286,19 @@ public function registerStandaloneBundles(): array
{
$bundles = BundlesLoader::getBundlesMap();

// Для регистрации kernel.bundles & kernel.bundles_meta в режиме прода.
if (count($bundles) === 0) {
$bundles = [];

if (file_exists($this->getProjectDir() . $this->bundlesConfigFile)) {
$bundlesConfig = require $this->getProjectDir() . $this->bundlesConfigFile;

foreach ($bundlesConfig as $name => $itemBundle) {
$bundles[$name] = new $name;
}
}
}

foreach ($bundles as $bundle) {
$this->registerBundle($bundle);
}
Expand Down Expand Up @@ -362,8 +373,8 @@ private function getSchema() : string
}

return array_key_exists('HTTPS', $_SERVER)
&& ($_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] === 443)
? 'https://' : 'http://';
&& ($_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] === 443)
? 'https://' : 'http://';
}

/**
Expand All @@ -382,4 +393,4 @@ private function getHttpHost() : string

return (string)$_SERVER['HTTP_HOST'];
}
}
}

0 comments on commit 1f10317

Please sign in to comment.