Skip to content

Commit 678ff3d

Browse files
committed
Баг-фикс: при скомпилированном контейнере не запускался метод boot бандлов.
1 parent 65f1314 commit 678ff3d

File tree

2 files changed

+30
-0
lines changed

2 files changed

+30
-0
lines changed

local/classes/ServiceProvider/Bundles/BundlesLoader.php

+26
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
* @since 19.11.2020 Сделать все приватные подписчики событий публичными.
2121
* @since 20.12.2020 Сделать все приватные консольные команды публичными.
2222
* @since 04.03.2021 Возможность загрузки бандлов несколькими провайдерами.
23+
* @since 27.04.2021 Баг-фикс: при скомпилированном контейнере не запускался метод boot бандлов.
2324
*/
2425
class BundlesLoader
2526
{
@@ -162,6 +163,31 @@ public function boot(ContainerInterface $container) : void
162163
}
163164
}
164165

166+
/**
167+
* Запуск метода boot у бандлов, когда контейнер скомпилирован.
168+
*
169+
* @param ContainerInterface $container Контейнер.
170+
*
171+
* @return void
172+
*
173+
* @since 27.04.2021 Баг-фикс: при скомпилированном контейнере не запускался метод boot бандлов.
174+
*/
175+
public static function bootAfterCompilingContainer(ContainerInterface $container) : void
176+
{
177+
if (!$container->hasParameter('kernel.bundles')) {
178+
return;
179+
}
180+
181+
/**
182+
* @var Bundle $bundle
183+
*/
184+
foreach ($container->getParameter('kernel.bundles') as $bundle) {
185+
$bundleObject = new $bundle;
186+
$bundleObject->setContainer($container);
187+
$bundleObject->boot();
188+
}
189+
}
190+
165191
/**
166192
* Бандлы.
167193
*

local/classes/ServiceProvider/ServiceProvider.php

+4
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@
6060
* внутрь соответствующего класса.
6161
* @since 04.04.2021 Вынес стандартные compile pass Symfony в отдельный класс.
6262
* @since 14.04.2021 Метод boot бандлов вызывается теперь после компиляции контейнера.
63+
* @since 27.04.2021 Баг-фикс: при скомпилированном контейнере не запускался метод boot бандлов.
6364
*/
6465
class ServiceProvider
6566
{
@@ -332,6 +333,9 @@ private function initContainer(string $fileName)
332333

333334
static::$containerBuilder = new $classCompiledContainerName();
334335

336+
// Boot bundles.
337+
BundlesLoader::bootAfterCompilingContainer(static::$containerBuilder);
338+
335339
// Исполнить PostLoadingPasses.
336340
$this->runPostLoadingPasses();
337341

0 commit comments

Comments
 (0)