File tree Expand file tree Collapse file tree 1 file changed +27
-0
lines changed Expand file tree Collapse file tree 1 file changed +27
-0
lines changed Original file line number Diff line number Diff line change 11Автозагрузчик модулей Битрикс, который поможет вам навсегда забыть про вызовы CModule::IncludeModule и Loader::includeModule
22
3+ Будте осторожны: это бетта-версия и в реальных боевых условиях она пока не тестировалась!
4+
35Как использовать:
46
571 Установите через composer:
1113` \WebArch\BitrixNeverInclude\BitrixNeverInclude::registerModuleAutoload(); `
1214
13153 И наслаждайтесь более интересными заботами, чем подключение модулей то здесь, то там! :)
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+
You can’t perform that action at this time.
0 commit comments