Skip to content

Commit e96f5a7

Browse files
Дополнения в README
1 parent acf4ffe commit e96f5a7

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed

README.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
Автозагрузчик модулей Битрикс, который поможет вам навсегда забыть про вызовы CModule::IncludeModule и Loader::includeModule
22

3+
Будте осторожны: это бетта-версия и в реальных боевых условиях она пока не тестировалась!
4+
35
Как использовать:
46

57
1 Установите через composer:
@@ -11,3 +13,28 @@
1113
`\WebArch\BitrixNeverInclude\BitrixNeverInclude::registerModuleAutoload();`
1214

1315
3 И наслаждайтесь более интересными заботами, чем подключение модулей то здесь, то там! :)
16+
17+
Особенности реализации
18+
19+
1 Классы не из глобального namespace разбираются динамически и превращаются в название модуля,
20+
который тут же подключается.
21+
22+
2 Классы из глобальной области проверяются по маппингу "имя класса => имя модуля", для вычисления которого делается
23+
подключение всех установленных в системе модулей и производится сбор внутренних данных, которые потом кешируются.
24+
25+
Возможные неприятности:
26+
27+
1 Если происходит установка нового модуля, использующего классы в глобальной области, кеш маппинга
28+
"имя класса => имя модуля" будет неактуальным. Рекомендуется сбросить его по тегу следующим образом:
29+
30+
```
31+
32+
$tagCache = \Bitrix\Main\Application::getInstance()->getTaggedCache();
33+
$tagCache->clearByTag(\WebArch\BitrixNeverInclude\BitrixNeverInclude::CACHE_TAG);
34+
35+
```
36+
37+
2 После сброса кеша рекомендуется вызвать `\WebArch\BitrixNeverInclude\BitrixNeverInclude::getClassMapping();` , чтобы
38+
при следующем хите уже существовал маппинг "имя класса => имя модуля".
39+
40+

0 commit comments

Comments
 (0)