LsObject

Package framework.engine
Inheritance abstract class LsObject
Subclasses Action, Behavior, Block, Cron, Entity, Event, Hook, LS, Mapper, Module, ORMRelationManyToMany, Plugin, Router
Since 1.0
Source Code /framework/classes/engine/LsObject.class.php
От этого класса наследуются все остальные

Protected Properties

Hide inherited properties

PropertyTypeDescriptionDefined By
_aBehaviors Список поведений в виде готовых объектов, формируется автоматически LsObject
aBehaviors array Список поведений LsObject

Public Methods

Hide inherited methods

MethodDescriptionDefined By
AddBehaviorHook() Добавляет хук поведения LsObject
AttachBehavior() Присоединяет поведение к объекту LsObject
DetachBehavior() Отсоединяет поведение от объекта LsObject
GetBehavior() Возвращает объект поведения по его имени LsObject
GetBehaviors() Возвращает все объекты поведения LsObject
RemoveBehaviorHook() Удаляет хук поведения LsObject
RunBehaviorHook() Запускает хук поведения на выполнение LsObject
__call() Ставим хук на вызов неизвестного метода и считаем что хотели вызвать метод какого либо модуля LsObject
__clone() При клонировании сбрасываем поведения LsObject
__construct() Конструктор, запускается автоматически при создании объекта LsObject
__get() Обработка доступа к объекты поведения LsObject

Protected Methods

Hide inherited methods

MethodDescriptionDefined By
PrepareBehaviors() Инициализация поведений LsObject

Property Details

_aBehaviors property
protected $_aBehaviors;

Список поведений в виде готовых объектов, формируется автоматически

aBehaviors property
protected array $aBehaviors;

Список поведений

array(
   'property'=>array(
       'class'=>'ModuleProperty_BehaviorProperty',
       'param1'=>12345,
       'param2'=>'two'
   ),
   'category'=>$oCategoryBehavior
)

Method Details

AddBehaviorHook() method
public mixed AddBehaviorHook(string $sName, array $aCallback, int $iPriority=1)
$sName string
$aCallback array
$iPriority int
{return} mixed
Source Code: /framework/classes/engine/LsObject.class.php#183 (show)
public function AddBehaviorHook($sName$aCallback$iPriority 1)
{
    return 
$this->Hook_AddHookBehavior($sName$this$aCallback$iPriority);
}

Добавляет хук поведения

AttachBehavior() method
public Behavior AttachBehavior(string $sName, $mBehavior $mBehavior)
$sName string
$mBehavior $mBehavior
{return} Behavior
Source Code: /framework/classes/engine/LsObject.class.php#115 (show)
public function AttachBehavior($sName$mBehavior)
{
    
$this->PrepareBehaviors();
    if (!(
$mBehavior instanceof Behavior)) {
        if (
is_string($mBehavior)) {
            
$sClass $mBehavior;
            
$aParams = array();
        } else {
            if (isset(
$mBehavior['class'])) {
                
$sClass $mBehavior['class'];
                unset(
$mBehavior['class']);
            } else {
                
$sClass array_shift($mBehavior);
            }
            
$aParams $mBehavior;
        }
        
$mBehavior Engine::GetBehavior($sClass$aParams);
    }
    if (isset(
$this->_aBehaviors[$sName])) {
        
$this->_aBehaviors[$sName]->Detach();
    }
    
$mBehavior->Attach($this);
    return 
$this->_aBehaviors[$sName] = $mBehavior;
}

Присоединяет поведение к объекту

DetachBehavior() method
public Behavior|null DetachBehavior(string $sName)
$sName string
{return} Behavior|null
Source Code: /framework/classes/engine/LsObject.class.php#147 (show)
public function DetachBehavior($sName)
{
    
$this->PrepareBehaviors();
    if (isset(
$this->_aBehaviors[$sName])) {
        
$oBehavior $this->_aBehaviors[$sName];
        unset(
$this->_aBehaviors[$sName]);
        
$oBehavior->Detach();
        return 
$oBehavior;
    } else {
        return 
null;
    }
}

Отсоединяет поведение от объекта

GetBehavior() method
public Behavior|null GetBehavior(string $sName)
$sName string
{return} Behavior|null
Source Code: /framework/classes/engine/LsObject.class.php#88 (show)
public function GetBehavior($sName)
{
    
$this->PrepareBehaviors();
    return isset(
$this->_aBehaviors[$sName]) ? $this->_aBehaviors[$sName] : null;
}

Возвращает объект поведения по его имени

GetBehaviors() method
public array GetBehaviors()
{return} array
Source Code: /framework/classes/engine/LsObject.class.php#75 (show)
public function GetBehaviors()
{
    
$this->PrepareBehaviors();
    return 
$this->_aBehaviors;
}

Возвращает все объекты поведения

PrepareBehaviors() method
protected void PrepareBehaviors()
Source Code: /framework/classes/engine/LsObject.class.php#97 (show)
protected function PrepareBehaviors()
{
    if (
is_null($this->_aBehaviors)) {
        
$this->_aBehaviors = array();
        foreach (
$this->aBehaviors as $sName => $mBehavior) {
            
$this->AttachBehavior($sName$mBehavior);
        }
    }
}

Инициализация поведений

RemoveBehaviorHook() method
public mixed RemoveBehaviorHook(string $sName, array|null $aCallback=NULL)
$sName string
$aCallback array|null Если null, то будут удалены все хуки
{return} mixed
Source Code: /framework/classes/engine/LsObject.class.php#196 (show)
public function RemoveBehaviorHook($sName$aCallback null)
{
    return 
$this->Hook_RemoveHookBehavior($sName$this$aCallback);
}

Удаляет хук поведения

RunBehaviorHook() method
public mixed RunBehaviorHook(string $sName, array $aVars=array ( ), bool $bWithGlobal=false)
$sName string
$aVars array
$bWithGlobal bool Запускать дополнительно одноименный глобальный (стандартный) хук
{return} mixed
Source Code: /framework/classes/engine/LsObject.class.php#169 (show)
public function RunBehaviorHook($sName$aVars = array(), $bWithGlobal false)
{
    return 
$this->Hook_RunHookBehavior($sName$this$aVars$bWithGlobal);
}

Запускает хук поведения на выполнение

__call() method
public mixed __call(string $sName, array $aArgs)
$sName string Имя метода
$aArgs array Аргументы
{return} mixed
Source Code: /framework/classes/engine/LsObject.class.php#227 (show)
public function __call($sName$aArgs)
{
    
$this->PrepareBehaviors();
    
/**
     * Проверяем на вызов метода поведения
     * Пропускаем служебные методы поведения
     */
    
if (!in_array(strtolower($sName), array('attach''detach'))) {
        foreach (
$this->_aBehaviors as $oObject) {
            if (
func_method_exists($oObject$sName'public')) {
                return 
call_user_func_array(array($oObject$sName), $aArgs);
            }
        }
    }
    
/**
     * Если метод не найден, то запускаем стандартную обработку
     */
    
return Engine::getInstance()->_CallModule($sName$aArgs);
}

Ставим хук на вызов неизвестного метода и считаем что хотели вызвать метод какого либо модуля

__clone() method
public void __clone()
Source Code: /framework/classes/engine/LsObject.class.php#65 (show)
public function __clone()
{
    
$this->_aBehaviors null;
}

При клонировании сбрасываем поведения

__construct() method
public void __construct()
Source Code: /framework/classes/engine/LsObject.class.php#57 (show)
public function __construct()
{

}

Конструктор, запускается автоматически при создании объекта

__get() method
public mixed __get(string $sName)
$sName string
{return} mixed
Source Code: /framework/classes/engine/LsObject.class.php#208 (show)
public function __get($sName)
{
    
$this->PrepareBehaviors();
    
/**
     * Проверяем на получение объекта поведения
     */
    
if (isset($this->_aBehaviors[$sName])) {
        return 
$this->_aBehaviors[$sName];
    }
}

Обработка доступа к объекты поведения