2009-05-10 10:50:39 +03:00
|
|
|
|
<?php
|
2008-09-21 09:36:57 +03:00
|
|
|
|
/*-------------------------------------------------------
|
|
|
|
|
*
|
|
|
|
|
* LiveStreet Engine Social Networking
|
|
|
|
|
* Copyright © 2008 Mzhelskiy Maxim
|
|
|
|
|
*
|
|
|
|
|
*--------------------------------------------------------
|
|
|
|
|
*
|
|
|
|
|
* Official site: www.livestreet.ru
|
|
|
|
|
* Contact e-mail: rus.engine@gmail.com
|
|
|
|
|
*
|
|
|
|
|
* GNU General Public License, version 2:
|
|
|
|
|
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
|
|
|
|
*
|
|
|
|
|
---------------------------------------------------------
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Абстракция модуля, от которой наследуются все модули
|
2012-04-17 20:58:32 +03:00
|
|
|
|
* Модули предназначены для объединения часто используемого функционала, т.е. некие аналоги внутренних библиотек.
|
2008-09-21 09:36:57 +03:00
|
|
|
|
*
|
2012-04-17 20:58:32 +03:00
|
|
|
|
* @package engine
|
|
|
|
|
* @since 1.0
|
2008-09-21 09:36:57 +03:00
|
|
|
|
*/
|
2012-04-07 09:41:52 +03:00
|
|
|
|
abstract class Module extends LsObject {
|
2010-02-03 13:02:01 +02:00
|
|
|
|
/**
|
2012-04-17 20:58:32 +03:00
|
|
|
|
* Объект ядра
|
2010-02-03 13:02:01 +02:00
|
|
|
|
*
|
|
|
|
|
* @var Engine
|
|
|
|
|
*/
|
2008-09-21 09:36:57 +03:00
|
|
|
|
protected $oEngine=null;
|
2010-02-03 13:02:01 +02:00
|
|
|
|
/**
|
|
|
|
|
* Указывает на то, была ли проведенна инициализация модуля
|
|
|
|
|
*
|
|
|
|
|
* @var bool
|
|
|
|
|
*/
|
|
|
|
|
protected $bIsInit=false;
|
2012-04-17 20:58:32 +03:00
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* При создании модуля передаем объект ядра
|
|
|
|
|
*
|
|
|
|
|
* @param Engine $oEngine
|
|
|
|
|
*/
|
|
|
|
|
final public function __construct(Engine $oEngine) {
|
|
|
|
|
$this->oEngine=$oEngine;
|
2008-09-21 09:36:57 +03:00
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Ставим хук на вызов неизвестного метода и считаем что хотели вызвать метод какого либо модуля
|
2012-04-17 20:58:32 +03:00
|
|
|
|
* @see Engine::_CallModule
|
2008-09-21 09:36:57 +03:00
|
|
|
|
*
|
2012-04-17 20:58:32 +03:00
|
|
|
|
* @param string $sName Имя метода
|
|
|
|
|
* @param array $aArgs Аргументы
|
|
|
|
|
* @return mixed
|
2008-09-21 09:36:57 +03:00
|
|
|
|
*/
|
|
|
|
|
public function __call($sName,$aArgs) {
|
|
|
|
|
return $this->oEngine->_CallModule($sName,$aArgs);
|
|
|
|
|
}
|
|
|
|
|
/**
|
2012-04-17 20:58:32 +03:00
|
|
|
|
* Блокируем копирование/клонирование объекта
|
2008-09-21 09:36:57 +03:00
|
|
|
|
*
|
|
|
|
|
*/
|
|
|
|
|
protected function __clone() {
|
2012-04-17 20:58:32 +03:00
|
|
|
|
|
2008-09-21 09:36:57 +03:00
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Абстрактный метод инициализации модуля, должен быть переопределен в модуле
|
|
|
|
|
*
|
|
|
|
|
*/
|
|
|
|
|
abstract public function Init();
|
|
|
|
|
/**
|
2012-04-17 20:58:32 +03:00
|
|
|
|
* Метод срабатывает при завершении работы ядра
|
2008-09-21 09:36:57 +03:00
|
|
|
|
*
|
|
|
|
|
*/
|
|
|
|
|
public function Shutdown() {
|
2012-04-17 20:58:32 +03:00
|
|
|
|
|
2008-09-21 09:36:57 +03:00
|
|
|
|
}
|
2010-02-04 21:17:03 +02:00
|
|
|
|
/**
|
2012-04-17 20:58:32 +03:00
|
|
|
|
* Возвращает значение флага инициализации модуля
|
2010-02-04 21:17:03 +02:00
|
|
|
|
*
|
|
|
|
|
* @return bool
|
|
|
|
|
*/
|
|
|
|
|
public function isInit() {
|
|
|
|
|
return $this->bIsInit;
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Помечает модуль как инициализированный
|
|
|
|
|
*
|
|
|
|
|
* @return null
|
|
|
|
|
*/
|
|
|
|
|
public function SetInit() {
|
|
|
|
|
$this->bIsInit=true;
|
|
|
|
|
}
|
2008-09-21 09:36:57 +03:00
|
|
|
|
}
|
|
|
|
|
?>
|