Плагин «Расширение методов ядра (Wise Engine)»

ИСТОРИЯ

Читая на разных блогах заметки о ЛС как движке с высоким порогом входа для разработчиков, нередко можно наткнутся на возгласы программистов других CMS подобные таким: "Что это такое: $this -> User_GetUserById? Где привычный вызов методов $this -> User -> GetUserById?". После таких слов начинается виртуальный разбор внутренней структуры движка — что такой код писать не удобно и автокомплитер для своей любимой IDE сложно настроить и т.п.

Поразмыслив немного, я решил исправить ситуацию и расширить возможности ядра к более красивому решению по написанию кода. Вам ведь тоже хотелось писать код так же:

$this -> User -> GetUserByLogin ('admin') -> getLogin ()


правда? или так:

$this -> PluginConfigengine -> Config -> GetMyConfig ($this)


Что там дальше-то, скорее нужно прочитать

Наследование в плагине

Трюки с LiveStreet
Как известно, для наследования у плагинов в главном классе (Plugin) есть переменная aInherits, которая содержит ассоциативные массивы module, mapper, action, entity, template, block, которые, в свою очередь, указывают на ассоциативный массив, который объясняет движку что и как наследовать. Но мало кому известно что не важно как назвать тип модуля который мы наследуем, главное чтобы он был из этого списка. А движок потом сам разберется с ним, если все другие параметры указаны верно. Т.е. если вы обычно пишете для наследования екшена, который отвечает за аякс загрузку данных такой код:

  protected $aInherits = array (
    'action' => array (
      'ActionAjax'  // укороченная запись, если кто не в курсе
    )
  );


Что же там такое-то, а?