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

ИСТОРИЯ

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

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

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


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

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


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

$this -> PluginTest -> ModuleTest -> GetTestForTest ()


ОПИСАНИЕ

Данный плагин дополняет ядро ЛС возможностью вызовов методов без использования подчеркивания, а с использованием привычной «цепочки» для вызова методов объектов:

1. вариант вызова методов модулей ядра:

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


идентичен

$this -> user -> getuserbylogin ('admin') -> getlogin ()


т.е. не чувствителен к регистру, но не следует это воспринимать всерьез: в новых версиях php (вроде как в 6) обещали сделать чувствительный к регистру символов вызов методов классов, так что не наделайте себе сюрпризов — пишите имена классов и методов точно в соответствии с их объявлениями.

2. вариант с вызовом методов модулей плагина:

$this -> PluginTest -> ModuleTest -> GetTestForTest ()


идентичен

$this -> PluginTest -> Test -> GetTestForTest ()


РЕЗЮМЕ

Конечно это вряд ли можно назвать серьезным решением, т.к. плагин подменяет корневой класс ядра (LsObject), сохраняя при этом оригинал файла, но как альтернативный взгляд — вполне приемлем. Скорее всего это можно назвать спортивным программированием.

Плагин доступен в каталоге.
0 комментариев
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.