Ядро(Engine.class.php) это сердце движка,
в нем происходит инициализация всех модулей
и реализован механизм доступа к методам модулей через $this->ModuleName_ModuleMethod(params) Ядро инициализируется в роутере, но так же можно сделать это в другом месте, например, в обработчиках Аякса.
Соответственно для
$this -> Database_GetConnect();
Будет выполняться метод GetConnect() в классе Database
Это работает благодаря методу __call(), автоматически запускающемуся при отсутствии требуемого метода.
/**
* Ставим хук на вызов неизвестного метода
* и считаем что хотели вызвать метод какого либо модуля
*
* @param string $sName
* @param array $aArgs
* @return unknown
*/
public function __call($sName,$aArgs) {
return $this->oEngine->_CallModule($sName,$aArgs);
}
Соответственно вызывается _CallModule(), в котором есть такая строчка:
$aName=explode("_",$sName);
То есть мы имя разбиваем знаком "_" и дальше работаем как с именем класса и именем его метода.
Соответственно для
Будет выполняться метод GetConnect() в классе Database
Это работает благодаря методу __call(), автоматически запускающемуся при отсутствии требуемого метода.
Соответственно вызывается _CallModule(), в котором есть такая строчка:
То есть мы имя разбиваем знаком "_" и дальше работаем как с именем класса и именем его метода.