Ответы пользователя по тегу ООП
  • Выгрузить класс из памяти

    @Vampiro
    Есть система, в ней используется шаблонизатор (Smarty), который инициализируется как поле родительского класса всех модулей. Есть модуль которому шаблонизатор не нужен.

    Найдите модуль родителя. скопируйте его, назовите как-то а-ля BaseModuleNoSmarty. Выкиньте оттуда все, что связано со смарти и отнаследуйтесь от него. То есть у вас два варианта, быстрый и хороший:
    хороший:
    было
    class MyModule extends BasicModule
    стало
    class MyModule extends BasicModuleNoSmarty
    

    и второй, с большим объемом рефакторинга:
    было
    class MyModule extends BasicModule
    class BasicModule extends AbstractModule ( а может это и базовый класс, тогда чуть проще)
    стало
    class MyModule extends BasicModuleNoSmarty
    class BasicModule extends BasicModuleNoSmarty{
    тут добавление Smarty куда надо
    }
    class BasicModuleNoSmarty extends AbstractModule {
    тут все, что было в обычном модуле но без шаблонизатора.
    }
    

    Это если вы не хотите переделывать реализацию базового класса всех модулей.
    Ответ написан
    Комментировать