1
0
Fork 0
mirror of https://github.com/Oreolek/ifhub.club.git synced 2024-07-08 09:24:25 +03:00
ifhub.club/engine/classes/Module.class.php

94 lines
2.5 KiB
PHP
Raw Normal View History

<?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
*
---------------------------------------------------------
*/
/**
* Абстракция модуля, от которой наследуются все модули
* Модули предназначены для объединения часто используемого функционала, т.е. некие аналоги внутренних библиотек.
2008-09-21 09:36:57 +03:00
*
* @package engine
* @since 1.0
2008-09-21 09:36:57 +03:00
*/
abstract class Module extends LsObject {
/**
* Объект ядра
*
* @var Engine
*/
2008-09-21 09:36:57 +03:00
protected $oEngine=null;
/**
* Указывает на то, была ли проведенна инициализация модуля
*
* @var bool
*/
protected $bIsInit=false;
/**
* При создании модуля передаем объект ядра
*
* @param Engine $oEngine
*/
final public function __construct(Engine $oEngine) {
$this->oEngine=$oEngine;
2008-09-21 09:36:57 +03:00
}
/**
* Ставим хук на вызов неизвестного метода и считаем что хотели вызвать метод какого либо модуля
* @see Engine::_CallModule
2008-09-21 09:36:57 +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);
}
/**
* Блокируем копирование/клонирование объекта
2008-09-21 09:36:57 +03:00
*
*/
protected function __clone() {
2008-09-21 09:36:57 +03:00
}
/**
* Абстрактный метод инициализации модуля, должен быть переопределен в модуле
*
*/
abstract public function Init();
/**
* Метод срабатывает при завершении работы ядра
2008-09-21 09:36:57 +03:00
*
*/
public function Shutdown() {
2008-09-21 09:36:57 +03: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
}
?>