Инструменты пользователя

Инструменты сайта


ядро:w_object

Это старая версия документа!


Объект w_object

Родительский класс для многих классов системы.

Расположение

core/object2.php

Селекторы

Селекторы представляют собой ассоциированный массив со значениями определяющими выборку. Если вместо массива указать скалярную переменную - выбирается селектор по умолчанию. Наиболее часто селекторы используются в функциях item и items

СеллекторОписаниеТип
aliasэлемент(ы) с данным aliasПоле alias элемента, array
idэлемент(ы) с данным idПоле id элемента, array
!idисключая элемент(ы) с данным idПоле id элемента, array
childrens_ofЯвляется непосредственным дочерним элементомПоле id родительского элемента
next_ofЭлемент находится после элементаПоле id предыдущего элемента
nogroupНе группировать элементыboolean
noorderingНе сортировать элементыboolean
parent_ofЯвляется непосредственным родительским элементомПоле id дочернего элемента
parents_ofЯвляется родительским элементомПоле id дочернего элемента
prev_ofЭлемент находится перед элементомПоле id следующего элемента
property_existsСодержит свойствоПоле id объекта w_property,Поле alias объекта w_property
property_inheritПри выборке наследовать свойства от родителейbool
publishedУстановлена публикация элемента (наследуется от родителя в древе)bool
siblings_ofЯвляется сиблингом (элемент одной ветки) для элементаПоле id дочернего элемента
tree_ofЯвляется дочерним элементомПоле id родительского элемента
valueСодержит свойства с данным значениeм (значениями)Селектор w_value,[Селектор w_value]
sortсортировкаstring
groupгруппировкаstring
startвыбирать начиная с номера элементаint
limitколичество элементовint
По-умолчаниюid элементаint

Алиас

Алиас элемента - уникальный идентификатор для элемента в ветке.

Правила построения:

  • Все нелатинские символы транслитеруются
  • Алиас может содержать следующие символы a-z 0-9 - _ ~, остальные символы будут удалены
  • Если алиас не уникален, к нему добавляется числовой индекс
  • Если алиас числовой и не соответствует id текущего элемента к нему добавляется префикс n
  • Если после проверок алиас оказывается пустым, он устанавливается равным id текущего элемента

Поля объекта

Получить поле можно обратившись к экземпляру класса.

Примечание: в данной документации полями называются свойства объектов, чтоб термин не конфликтовал с Объектом w_property отвечающим за хранение свойств-признаков элементов.

Сохраняемые поля объекта

Поля объекта, записываемые в базу данных. Данные поля можно сохранить с помощью функции save();

ПолеОписаниеТип
aliasалиас элементаstring
orderingпорядок элемента в веткеint
parent_idid родительского элементаint

Динамические поля объекта

Поля объекта создаваемые при его загрузке

ПолеОписаниеТип
idid элементаint
is_newФлаг элемента, сохраненного первый раз (нового элемента)boolean
is_simularФлаг, все элементы объекта принадлежат одному классуboolean

Итерация объекта и доступ к элементам

Объект содержит набор элементов, которые выбираются с помощью функций items или item. Элементы объекта могут итерировтаться как массив. Для доступа к определенным элементам существует набор функций.

Работа с объектом на примере w_catalog

$items = w_catalog::items(['type'=>'product']); //выбираем все товары
foreach($items as $item){
   echo $item->title; //выводим поля заголовка всех объектов в цикле
}
 
$item3 = $items->eq(3); //получаем доступ к третьему элементу
echo $item3->title; //выводим его поле заголовока
 
$item_last = $items->last(); //получаем доступ к последнему элементу
$item_last->title = 'Новый заголовок';
$item_last->save(); //сохраняем элемент
$items->save(); //либо сохраняем весь набор элементов
 
echo $items->title; //выводим поле заголовока первого элемента набора

Статичные методы

checkpoint

w_object::checkpoint(info)

Функция для замера времени выполнения участка кода. Отсчет производится между вызовами функций. Если интервал между вызовами меньше 1мс, либо не указан текст сообщения - сообщение не выводится. Счетчики независимы для разных классов.

АргументОписаниеТипПо-умолчанию
infoВыводимое сообщениеstring
Возвращаетtrueboolean
w_object2::checkpoint();
for($i=1;$i<10000000;$i++){ }
w_object2::checkpoint('Конец выполнения цикла'); //Выведет: w_object2: Конец выполнения цикла 0.0677

count

w_object::count(params)

Посчитать количество элементов

АргументОписаниеТипПо-умолчанию
paramsУсловия выборкиСелектор класса[]
ВозвращаетОбъектОбъект

create

w_object::create(params)

Создать элемент

ВозвращаетСозданный объектОбъект

empty

w_object::empty()

Создать пустой объект

ВозвращаетОбъектОбъект

ids

w_object::ids(params)

Получить массив id выбранных элементов

АргументОписаниеТипПо-умолчанию
paramsУсловия выборкиСелектор класса[]
ВозвращаетМассив id выбранных элементов[поле id элемента]

item

w_object::item(params,force,nocache)

Выбрать единственный элемент по параметрам

АргументОписаниеТипПо-умолчанию
paramsУсловия выборкиСелектор класса[]
forceНе брать из кешаbooleanfalse
nocaheНе кешироватьbooleanfalse
ВозвращаетОбъектОбъект

items

w_object::items(params,force,nocache)

Выбрать группу элементов по параметрам

АргументОписаниеТипПо-умолчанию
paramsУсловия выборкиСелектор класса[]
forceНе брать из кешаbooleanfalse
nocaheНе кешироватьbooleanfalse
ВозвращаетОбъектОбъект

parentRepair

w_object::parentRepair()

Перестроить карту родителей для всех элементов.

АргументОписаниеТипПо-умолчанию
Возвращаетtrue, в случае успехаboolean

remove

w_object::remove(params)

Удалить элементы по параметрам

АргументОписаниеТипПо-умолчанию
paramsУсловия выборкиСелектор класса[]
Возвращаетtrue, если удаление успешноboolean

wipe

w_object::wipe()

Полное удаление всех элементов класса, а также связанных с ними элементов.

АргументОписаниеТипПо-умолчанию
Возвращаетtrueboolean

Методы объекта

aliasSave

$object->aliasSave()

Установить алиас, заданный полем alias текущего элемента(ов)

АргументОписаниеТипПо-умолчанию
Возвращаетtrue, в случае успехаboolean

cacheGet

$object->cacheGet(params)

Получить группу элементов из кеша по параметрам params.

АргументОписаниеТипПо-умолчанию
paramsУсловия выборкиСелектор класса[]
ВозвращаетОбъектОбъект

cacheRemove

$object->cacheRemove(params)

Удалить группу элементов из кеша по параметрам params.

АргументОписаниеТипПо-умолчанию
paramsУсловия выборкиСелектор класса[]
Возвращаетtrueboolean

childrens

$object->childrens(params,force)

Получить непосредственные дочерние элементы. Если текущий объект содержит несколько элементов - в результирующем объекте окажутся дочерние элементы для каждого элемента.

АргументОписаниеТипПо-умолчанию
paramsУсловия выборкиСелектор класса[]
forceНе брать из кешаbooleanfalse
ВозвращаетОбъектОбъект

copyAfter

$object->copyAfter(sibling_id)

Скопировать элемент. Установить скопированный элемент следующим после элемента sibling_id.

АргументОписаниеТипПо-умолчанию
sibling_idid элемента, после которого необходимо переместить скопированный элементПоле id элемента обязательный
ВозвращаетСкопированный элементОбъект

copyAppend

$object->copyAppend(parent_id)

Скопировать элемент. Установить скопированный элемент последним в списке дочерних элементов элемента sibling_id.

АргументОписаниеТипПо-умолчанию
parent_idid элемента, внутрь которого необходимо переместить скопированный элементПоле id элемента или 0 обязательный
ВозвращаетСкопированный элементОбъект

copyВefore

$object->copyВefore(sibling_id)

Скопировать элемент. Установить скопированный элемент последним в списке дочерних элементов элемента sibling_id.

АргументОписаниеТипПо-умолчанию
sibling_idid элемента, перед которым необходимо переместить скопированный элементПоле id элемента обязательный
ВозвращаетСкопированный элементОбъект

copyPrepend

$object->copyPrepend(parent_id)

Скопировать элемент. Установить скопированный элемент первым в списке дочерних элементов элемента sibling_id.

АргументОписаниеТипПо-умолчанию
parent_idid элемента, внутрь которого необходимо переместить скопированный элементПоле id элемента или 0 обязательный
ВозвращаетСкопированный элементОбъект

eq

$object->eq(index)

Выбор элемента из объекта по порядковому номеру

АргументОписаниеТипПо-умолчанию
indexИндекс элементаint обязательное
ВозвращаетОбъектОбъект

first

$object->first()

Выбор первого элемента из объекта

ВозвращаетОбъектОбъект

free

$object->free()

Очистить кеш объекта и освободить память под него

Возвращаетtrueboolean

hasParent

$object->hasParent(parent_id)

Проверка принадлежности элемента к родителю

АргументОписаниеТипПо-умолчанию
parent_idid родителяПоле id родителя обязательный
Возвращаетtrue в случае если элемент принадлежит родителюboolean

image

$object->image(params,force)

Получить единственный элемент галереи объекта, или пустое изображение если отсутствует

АргументОписаниеТипПо-умолчанию
paramsУсловия выборкиСелектор w_gallery[]
forceНе брать из кешаbooleanfalse
ВозвращаетОбъект галереиОбъект

images

$object->images(params,force)

Получить элементы галереи объекта

АргументОписаниеТипПо-умолчанию
paramsУсловия выборкиСелектор w_gallery[]
forceНе брать из кешаbooleanfalse
ВозвращаетОбъект галереиОбъект

insert

$object->insert(object)

Скопировать элементы объекта object в текущий объект

АргументОписаниеТипПо-умолчанию
objectОбъектОбъект
ВозвращаетОбъектОбъект

implode

$object->implode(glue,field)

Склеить значения полей через разделитель

АргументОписаниеТипПо-умолчанию
glueРазделительstring обязательный
fieldИмя поляПоле обязательный
ВозвращаетСтрокаstring

last

$object->last()

Выбор последнего элемента из объекта

ВозвращаетОбъектОбъект

length

$object->length()

Количество элементов объекта

ВозвращаетКоличество элементовint

moveAfter

$object->moveAfter(sibling_id)

Изменить порядок и родителя текущего элемента. Установить элемент следующим после элемента sibling_id.

АргументОписаниеТипПо-умолчанию
sibling_idid элемента, после которого необходимо переместить текущий элементПоле id элемента обязательный
Возвращаетtrue, в случае успехаboolean

moveAppend

$object->moveAppend(parent_id)

Изменить порядок и родителя текущего элемента. Установить элемент последним в списке дочерних элементов элемента sibling_id.

АргументОписаниеТипПо-умолчанию
parent_idid элемента, внутрь которого необходимо переместить текущий элементПоле id элемента или 0 обязательный
Возвращаетtrue, в случае успехаboolean

moveВefore

$object->moveВefore(sibling_id)

Изменить порядок и родителя текущего элемента. Установить элемент следующим перед элементом sibling_id.

АргументОписаниеТипПо-умолчанию
sibling_idid элемента, перед которым необходимо переместить текущий элементПоле id элемента обязательный
Возвращаетtrue, в случае успехаboolean

movePrepend

$object->movePrepend(parent_id)

Изменить порядок и родителя текущего элемента. Установить элемент первым в списке дочерних элементов элемента sibling_id.

АргументОписаниеТипПо-умолчанию
parent_idid элемента, внутрь которого необходимо переместить текущий элементПоле id элемента или 0 обязательный
Возвращаетtrue, в случае успехаboolean

next

$object->next(params,force)

Получить следующий элемент. Если текущий объект содержит несколько элементов - в результирующем объекте окажутся следующие элементы для каждого элемента.

АргументОписаниеТипПо-умолчанию
paramsУсловия выборкиСелектор класса[]
forceНе брать из кешаbooleanfalse
ВозвращаетОбъектОбъект

orderingSave

$object->orderingSave()

Сохранить порядок заданный полем ordering текущего элемента(ов), пересортировать ветку в которой находится данный элемент.

АргументОписаниеТипПо-умолчанию
Возвращаетtrue, в случае успехаboolean

pagintion

$object->pagintion(max)

Расчет пагинации

АргументОписаниеТипПо-умолчанию
maxМаксимальное количество ключейint10
ВозвращаетМассив ключей пагинацииarray

parent

$object->parent(params,force)

Получить непосредственный родительский элемент. Если текущий объект содержит несколько элементов - в результирующем объекте окажутся родительские элементы для каждого элемента.

АргументОписаниеТипПо-умолчанию
paramsУсловия выборкиСелектор класса[]
forceНе брать из кешаbooleanfalse
ВозвращаетОбъектОбъект

parents

$object->parents(params,force)

Получить все родительские элементы. Если текущий объект содержит несколько элементов - в результирующем объекте окажутся родительские элементы для каждого элемента.

АргументОписаниеТипПо-умолчанию
paramsУсловия выборкиСелектор класса[]
forceНе брать из кешаbooleanfalse
ВозвращаетОбъектОбъект

parentSave

$object->parentSave()

Установить родителя, заданного полем parent_id текущего элемента(ов)

АргументОписаниеТипПо-умолчанию
Возвращаетtrue, в случае успехаboolean

prev

$object->prev(params,force)

Получить предыдущий элемент уровня. Если текущий объект содержит несколько элементов - в результирующем объекте окажутся предыдущие элементы для каждого элемента.

АргументОписаниеТипПо-умолчанию
paramsУсловия выборкиСелектор класса[]
forceНе брать из кешаbooleanfalse
ВозвращаетОбъектОбъект

remove

$object->remove()

Удалить элементы объекта

Возвращаетtrue, если удаление успешноboolean

reverse

$object->reverse()

Получить объект с обратной сортировкой элементов

ВозвращаетОбъектОбъект

save

$object->save()

Сохраняет элементы: все значения полей, свойства, родителей, порядок и алиасы

Возвращаетtrue, в случае успеха

seekSiblings

$object->seekSiblings()

Получить массив объектов с элементами сгруппированными по ветке

ВозвращаетМассив объектов[Объект]

seekSimular

$object->seekSimular()

Получить массив объектов с элементами сгруппированными по классу

ВозвращаетМассив объектов[Объект]

tree

$object->tree(params,force)

Получить дочерние элементы. Если текущий объект содержит несколько элементов - в результирующем объекте окажутся дочерние элементы для каждого элемента.

АргументОписаниеТипПо-умолчанию
paramsУсловия выборкиСелектор класса[]
forceНе брать из кешаbooleanfalse
ВозвращаетОбъектОбъект

unique

$object->unique()

Удаление дубликатов из набора

АргументОписаниеТипПо-умолчанию
Возвращаетtrue в случае успехаboolean

value

$object->value(params)

Получить единственное значение свойства

АргументОписаниеТипПо-умолчанию
paramsid свойства, алиас свойства или условия выборкиПоле id объекта w_property, Поле alias объекта w_property,Селектор w_value[]
ВозвращаетВыбранные свойстваОбъект w_value

valueAdd

$object->valueAdd(property,values)

Добавить значение свойства. Запись происходит после вызова функции save() или valueSave()

АргументОписаниеТипПо-умолчанию
propertyid или алиас свойстваПоле id объекта w_property, Поле alias объекта w_property обязательный
valuesЗначения свойствstring, [string] обязательный
Возвращаетtrue, в случае успехаboolean

valueImplode

$object->valueImplode(glue,params)

Получить значения свойств и склеить их через разделитель

АргументОписаниеТипПо-умолчанию
glueразделительstring обязательный
paramsid свойства, алиас свойства или условия выборкиПоле id объекта w_property, Поле alias объекта w_property,Селектор w_value[]
ВозвращаетСтрокаstring

values

$object->values(params)

Получить значение свойств

АргументОписаниеТипПо-умолчанию
paramsid свойства, алиас свойства или условия выборкиПоле id объекта w_property, Поле alias объекта w_property,Селектор w_value[]
ВозвращаетВыбранные свойстваОбъект w_value

valueRemove

$object->valueRemove(property,values)

Удалить значение свойства. Запись происходит после вызова функции save() или valueSave()

АргументОписаниеТипПо-умолчанию
propertyid или алиас свойстваПоле id объекта w_property, Поле alias объекта w_property обязательный
valuesУдаляемые значения свойства. Если не указано - удалить все значенияstring, [string]
Возвращаетtrue, в случае успехаboolean

valueSave

$object->valueSave()

Сохраняет значения свойств

АргументОписаниеТипПо-умолчанию
Возвращаетtrue, в случае успехаboolean

valueSet

$object->valueSet(property,value)

Заменить значения свойства на value. Запись происходит после вызова функции save() или valueSave()

АргументОписаниеТипПо-умолчанию
propertyid или алиас свойстваПоле id объекта w_property, Поле alias объекта w_property обязательный
valuesЗначения свойствstring обязательный
Возвращаетtrue, в случае успехаboolean

valuesSet

$object->valueSet(property,values)

Заменить значения свойства на значения из массива values. Запись происходит после вызова функции save() или valueSave()

АргументОписаниеТипПо-умолчанию
propertyid или алиас свойстваПоле id объекта w_property, Поле alias объекта w_property обязательный
valuesЗначения свойств[string] обязательный
Возвращаетtrue, в случае успехаboolean

valueSum

$object->valueSum(params)

Получить значения свойств и вычислить их сумму

АргументОписаниеТипПо-умолчанию
paramsid свойства, алиас свойства или условия выборкиПоле id объекта w_property, Поле alias объекта w_property,Селектор w_value[]
ВозвращаетСумму свойствfloat
ядро/w_object.1575497894.txt.gz · Последние изменения: 2019/12/05 01:18 — a1