2017 © Pedro Peláez
 

library bitrix-neverinclude

Automatic Bitrix modules loader helps you forget about CModule::IncludeModule and Loader::includeModule almost FOREVER!

image

webarchitect609/bitrix-neverinclude

Automatic Bitrix modules loader helps you forget about CModule::IncludeModule and Loader::includeModule almost FOREVER!

  • Wednesday, April 4, 2018
  • by webarchitect609
  • Repository
  • 3 Watchers
  • 4 Stars
  • 1,374 Installations
  • PHP
  • 0 Dependents
  • 1 Suggesters
  • 1 Forks
  • 0 Open issues
  • 8 Versions
  • 41 % Grown

The README.md

Автозагрузчик модулей Битрикс, который поможет вам забыть про вызовы CModule::IncludeModule и Loader::includeModule, (*1)

Как использовать

1 Установите через composer:, (*2)

composer require webarchitect609/bitrix-neverinclude, (*3)

2 Если необходимо, то в init.php укажите список модулей, которые следует исключить из обработки данного автолоадера:, (*4)

\WebArch\BitrixNeverInclude\BitrixNeverInclude::addExcludedModules(['foo.bar',]);, (*5)

Данный пакет совместим с новыми версиями andreyryabin/sprint.migration: >=3.0, (*6)

3 В init.php после подключения vendor/autoload.php добавьте вызов:, (*7)

\WebArch\BitrixNeverInclude\BitrixNeverInclude::registerModuleAutoload();, (*8)

Больше подключать модули не нужно, за исключением некоторых ситуаций, описанных ниже., (*9)

Особенности реализации

1 Классы не из глобального namespace разбираются динамически и превращаются в название модуля, который тут же подключается., (*10)

2 Классы из глобальной области проверяются по маппингу "имя класса => имя модуля", для вычисления которого делается подключение всех установленных в системе модулей и производится сбор внутренних данных, которые потом кешируются., (*11)

Известные ограничения

При установке нового модуля

Если происходит установка нового модуля, использующего классы в глобальной области, кеш маппинга "имя класса => имя модуля" будет неактуальным. Рекомендуется сбросить его по тегу следующим образом:, (*12)


$tagCache = \Bitrix\Main\Application::getInstance()->getTaggedCache(); $tagCache->clearByTag(\WebArch\BitrixNeverInclude\BitrixNeverInclude::CACHE_TAG);

После сброса кеша рекомендуется вызвать, (*13)

\WebArch\BitrixNeverInclude\BitrixNeverInclude::getClassMapping();, (*14)

, чтобы при следующем хите уже существовал маппинг "имя класса => имя модуля"., (*15)

Функции в модулях

В некоторых модулях объявляются функции, которые недоступны без подключения модуля. Например, функция SaleFormatCurrency недоступна без подключения модуля sale. Из-за того, что в php нет механизма автозагрузки функций, эта проблема не может быть решена автоматически. Следует вручную подключать соответствующий модуль перед вызовом функции, объявленной в этом модуле., (*16)

Несовместимость с некоторыми модулями

Если архитектура модуля Битрикс сделана таким образом, что в include.php происходит регистрация своего автозагрузчика классов, то очень вероятна несовместимость такого модуля с данным пакетом. Следует исключить этот модуль из обработки(см. выше) и подключать его по необходимости вручную., (*17)

The Versions

04/04 2018

dev-master

9999999-dev https://github.com/webarchitect609/bitrix-neverinclude

Automatic Bitrix modules loader helps you forget about CModule::IncludeModule and Loader::includeModule almost FOREVER!

  Sources   Download

MIT

The Requires

 

by Sergey Gripinskiy

bitrix module autoloading

04/04 2018

v1.0.0

1.0.0.0 https://github.com/webarchitect609/bitrix-neverinclude

Automatic Bitrix modules loader helps you forget about CModule::IncludeModule and Loader::includeModule almost FOREVER!

  Sources   Download

MIT

The Requires

 

by Sergey Gripinskiy

bitrix module autoloading

27/09 2017

v0.4.2

0.4.2.0 https://github.com/webarchitect609/bitrix-neverinclude

Automatic Bitrix modules loader helps you forget about CModule::IncludeModule and Loader::includeModule FOREVER!

  Sources   Download

MIT

The Requires

 

by Sergey Gripinskiy

bitrix module autoloading

25/09 2017

v0.4.1

0.4.1.0 https://github.com/webarchitect609/bitrix-neverinclude

Automatic Bitrix modules loader helps you forget about CModule::IncludeModule and Loader::includeModule FOREVER!

  Sources   Download

MIT

The Requires

 

by Sergey Gripinskiy

bitrix module autoloading

25/09 2017

v0.4.0

0.4.0.0 https://github.com/webarchitect609/bitrix-neverinclude

Automatic Bitrix modules loader helps you forget about CModule::IncludeModule and Loader::includeModule FOREVER!

  Sources   Download

MIT

The Requires

 

by Sergey Gripinskiy

bitrix module autoloading

21/09 2017

v0.3.0

0.3.0.0 https://github.com/webarchitect609/bitrix-neverinclude

Automatic Bitrix modules loader helps you forget about CModule::IncludeModule and Loader::includeModule FOREVER!

  Sources   Download

MIT

The Requires

 

by Sergey Gripinskiy

bitrix module autoloading

07/05 2017

v0.2.0

0.2.0.0 https://github.com/webarchitect609/bitrix-neverinclude

Automatic Bitrix modules loader helps you forget about CModule::IncludeModule and Loader::includeModule FOREVER!

  Sources   Download

MIT

The Requires

 

by Sergey Gripinskiy

bitrix module autoloading

22/04 2017

v0.1.1

0.1.1.0 https://github.com/webarchitect609/bitrix-neverinclude

Automatic Bitrix modules loader helps you forget about CModule::IncludeModule and Loader::includeModule FOREVER!

  Sources   Download

MIT

The Requires

  • php >=5.3.0

 

by Sergey Gripinskiy

bitrix module autoloading