ModuleStorage_MapperStorage

Package framework.modules
Inheritance class ModuleStorage_MapperStorage » Mapper » LsObject
Since 2.0
Source Code /framework/classes/modules/storage/mapper/Storage.mapper.class.php
Сущность хранилища настроек

Protected Properties

Hide inherited properties

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

Public Methods

Hide inherited methods

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

Protected Methods

Hide inherited methods

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

Method Details

BuildFilter() method
public string BuildFilter(array $aFilter=array ( ))
$aFilter array фильтр
{return} string часть WHERE условия sql запроса
Source Code: /framework/classes/modules/storage/mapper/Storage.mapper.class.php#151 (show)
public function BuildFilter($aFilter = array())
{
    
$sWhere '';
    
/*
     * для всех значение добавить условие "ключ = значение"
     */
    
foreach ($aFilter as $sKey => $mValue) {
        
$sWhere .= '
            AND ' 
$this->oDb->escape($sKeytrue) . ' = ' $this->oDb->escape($mValue);
    }
    return 
$sWhere;
}

Построить строку части WHERE условия из набора параметров фильтра

DeleteData() method
public array|null DeleteData(null $sWhere=NULL, int $iLimit=1)
$sWhere null фильтр
$iLimit int лимит запроса
{return} array|null
Source Code: /framework/classes/modules/storage/mapper/Storage.mapper.class.php#124 (show)
public function DeleteData($sWhere null$iLimit 1)
{
    
$sSql 'DELETE
        FROM
            ?#
        WHERE
            1 = 1
            ' 
$sWhere '
        LIMIT ?d
    '
;

    return 
$this->oDb->query(
        
$sSql,

        
Config::Get('db.table.storage'),

        
$iLimit
    
);
}

Удалить данные из хранилища

GetData() method
public array GetData(null $sWhere=NULL, int $iPage=1, int $iPerPage=9223372036854775807)
$sWhere null фильтр
$iPage int страница
$iPerPage int результатов на страницу
{return} array
Source Code: /framework/classes/modules/storage/mapper/Storage.mapper.class.php#39 (show)
public function GetData($sWhere null$iPage 1$iPerPage PHP_INT_MAX)
{
    
$sSql 'SELECT *
        FROM
            ?#
        WHERE
            1 = 1
            ' 
$sWhere '
        ORDER BY
            `id` ASC
        LIMIT ?d, ?d
    '
;
    
$iTotalCount 0;
    
$aCollection = array();

    if (
$aData $this->oDb->selectPage(
        
$iTotalCount,
        
$sSql,

        
Config::Get('db.table.storage'),

        (
$iPage 1) * $iPerPage,
        
$iPerPage
    
)
    ) {
        
/*
         * Если нужен только один элемент
         */
        
$aCollection $iPerPage == array_shift($aData) : $aData;
    }
    return array(
        
'collection' => $aCollection,
        
'count'      => $iTotalCount
    
);
}

Получить данные из хранилища по фильтру

SetData() method
public array|null SetData($sKey $sKey, $sValue $sValue, $sInstance $sInstance)
$sKey $sKey ключ
$sValue $sValue значение
$sInstance $sInstance инстанция хранилища
{return} array|null
Source Code: /framework/classes/modules/storage/mapper/Storage.mapper.class.php#84 (show)
public function SetData($sKey$sValue$sInstance)
{
    
$sSql 'INSERT INTO
            ?#
        (
            `key`,
            `value`,
            `instance`
        )
        VALUES
        (
            ?,
            ?,
            ?
        )
        ON DUPLICATE KEY UPDATE
            `value` = ?
    '
;

    return 
$this->oDb->query(
        
$sSql,

        
Config::Get('db.table.storage'),

        
$sKey,
        
$sValue,
        
$sInstance,

        
$sValue
    
);
}

Записать данные