File tree 2 files changed +30
-0
lines changed
local/classes/ServiceProvider
2 files changed +30
-0
lines changed Original file line number Diff line number Diff line change 20
20
* @since 19.11.2020 Сделать все приватные подписчики событий публичными.
21
21
* @since 20.12.2020 Сделать все приватные консольные команды публичными.
22
22
* @since 04.03.2021 Возможность загрузки бандлов несколькими провайдерами.
23
+ * @since 27.04.2021 Баг-фикс: при скомпилированном контейнере не запускался метод boot бандлов.
23
24
*/
24
25
class BundlesLoader
25
26
{
@@ -162,6 +163,31 @@ public function boot(ContainerInterface $container) : void
162
163
}
163
164
}
164
165
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
+
165
191
/**
166
192
* Бандлы.
167
193
*
Original file line number Diff line number Diff line change 60
60
* внутрь соответствующего класса.
61
61
* @since 04.04.2021 Вынес стандартные compile pass Symfony в отдельный класс.
62
62
* @since 14.04.2021 Метод boot бандлов вызывается теперь после компиляции контейнера.
63
+ * @since 27.04.2021 Баг-фикс: при скомпилированном контейнере не запускался метод boot бандлов.
63
64
*/
64
65
class ServiceProvider
65
66
{
@@ -332,6 +333,9 @@ private function initContainer(string $fileName)
332
333
333
334
static ::$ containerBuilder = new $ classCompiledContainerName ();
334
335
336
+ // Boot bundles.
337
+ BundlesLoader::bootAfterCompilingContainer (static ::$ containerBuilder );
338
+
335
339
// Исполнить PostLoadingPasses.
336
340
$ this ->runPostLoadingPasses ();
337
341
You can’t perform that action at this time.
0 commit comments