В Evolution CMS используется несколько DI
Чтобы заменить одну DI на другую, нам нужно выполнить несколько шагов 1) Создать класс реализующий аналогичный функционал. Можно изменить частично унаследовав класс из исходной DI 2) Зарегистрировать свою зависимость через ServiceProvider. Пример регистрации
<?php namespace EvolutionCMS\Custom;
use EvolutionCMS\Custom\CustomUserManager;
use EvolutionCMS\ServiceProvider;
class CustomUserServiceProvider extends ServiceProvider
{
/**
* Register the service provider.
*
* @return void
*/
public function register()
{
//регистрируем свой CustomTemplateProcessor как TemplateProcessor
$this->app->singleton('UserManager', function ($app) {
return new CustomUserManager($app);
});
}
}
После этих действий все обращения сайта будут идти к классу CustomUserManager как к \UserManager из ядра.
Например в случае расширения пользователя. Мы можем создать дополнительную таблицу с атрибутами пользователя. После этого расширить методы отвечающие за сохранение/редактирование пользователей, чтобы оно сохраняло данные в новую таблицу и после этого в панели управления тоже будет всё сохранять, так как там используются методы из UserManager