whiskyjs / bx-mutagen

Модификация поведения ядра БУС в райнтайме

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Лицензия

BX-Mutagen

Набор классов (плагинов в терминологии пакета) и функций для модификации поведения ядра Bitrix без изменения исходного кода. Proof of concept.

Список плагинов

  • ComponentInterceptor

    Позволяет переопределить схему разрешения класса классового компонента по пути, подключать вместо самого класса его наследник-враппер и переопределять его методы.

     use WJS\Mutagen\Core\Delegation\Delegate;
    
     use WJS\Mutagen\BX\Main\Component\ComponentInterceptorPlugin;
     use WJS\Mutagen\BX\Main\Component\ComponentInterceptorOptions;
     
     class MyDelegate extends Delegate
     {
         /**
          * @bx-delegate
          * @param $arParams
          * @return mixed
          */
         public function onPrepareComponentParams($arParams): array
         {
             return $arParams;
         }
     }
     
     $myDelegate = new MyDelegate();
     
     $options = new ComponentInterceptorOptions(
         $myDelegate,
         // Можем проверить, какие именно классы нужно перехватывать
         fn (string $class) => true
     );
     $interceptor = new ComponentInterceptorPlugin($options);
     $interceptor->plugIn();

Лицензия

Apache 2.0.

About

Модификация поведения ядра БУС в райнтайме

License:Apache License 2.0


Languages

Language:PHP 99.2%Language:Makefile 0.8%