0.00
Рейтинг
0.00
Сила
  • avatar valter
  • 0
Ядро(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);

То есть мы имя разбиваем знаком "_" и дальше работаем как с именем класса и именем его метода.