-
-
-
- Примеры
- API
Это старая версия документа!
Родительский класс для многих классов системы.
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 - _ ~, остальные символы будут удаленыnПолучить поле можно обратившись к экземпляру класса.
Примечание: в данной документации полями называются свойства объектов, чтоб термин не конфликтовал с Объектом w_property отвечающим за хранение свойств-признаков элементов.
Поля объекта, записываемые в базу данных. Данные поля можно сохранить с помощью функции save();
| Поле | Описание | Тип |
|---|---|---|
| alias | алиас элемента | string |
| ordering | порядок элемента в ветке | int |
| parent_id | id родительского элемента | int |
Поля объекта создаваемые при его загрузке
| Поле | Описание | Тип |
|---|---|---|
| id | id элемента | 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; //выводим поле заголовока первого элемента набора
w_object::checkpoint(info)
Функция для замера времени выполнения участка кода. Отсчет производится между вызовами функций. Если интервал между вызовами меньше 1мс, либо не указан текст сообщения - сообщение не выводится. Счетчики независимы для разных классов.
| Аргумент | Описание | Тип | По-умолчанию |
|---|---|---|---|
| info | Выводимое сообщение | string | |
| Возвращает | true | boolean |
w_object2::checkpoint(); for($i=1;$i<10000000;$i++){ } w_object2::checkpoint('Конец выполнения цикла'); //Выведет: w_object2: Конец выполнения цикла 0.0677
w_object::count(params)
Посчитать количество элементов
| Аргумент | Описание | Тип | По-умолчанию |
|---|---|---|---|
| params | Условия выборки | Селектор класса | [] |
| Возвращает | Объект | Объект |
w_object::ids(params)
Получить массив id выбранных элементов
| Аргумент | Описание | Тип | По-умолчанию |
|---|---|---|---|
| params | Условия выборки | Селектор класса | [] |
| Возвращает | Массив id выбранных элементов | [поле id элемента] |
w_object::item(params,force,nocache)
Выбрать единственный элемент по параметрам
| Аргумент | Описание | Тип | По-умолчанию |
|---|---|---|---|
| params | Условия выборки | Селектор класса | [] |
| force | Не брать из кеша | boolean | false |
| nocahe | Не кешировать | boolean | false |
| Возвращает | Объект | Объект |
w_object::items(params,force,nocache)
Выбрать группу элементов по параметрам
| Аргумент | Описание | Тип | По-умолчанию |
|---|---|---|---|
| params | Условия выборки | Селектор класса | [] |
| force | Не брать из кеша | boolean | false |
| nocahe | Не кешировать | boolean | false |
| Возвращает | Объект | Объект |
w_object::parentRepair()
Перестроить карту родителей для всех элементов.
| Аргумент | Описание | Тип | По-умолчанию |
|---|---|---|---|
| Возвращает | true, в случае успеха | boolean |
w_object::remove(params)
Удалить элементы по параметрам
| Аргумент | Описание | Тип | По-умолчанию |
|---|---|---|---|
| params | Условия выборки | Селектор класса | [] |
| Возвращает | true, если удаление успешно | boolean |
$object->aliasSave()
Установить алиас, заданный полем alias текущего элемента(ов)
| Аргумент | Описание | Тип | По-умолчанию |
|---|---|---|---|
| Возвращает | true, в случае успеха | boolean |
$object->cacheGet(params)
Получить группу элементов из кеша по параметрам params.
| Аргумент | Описание | Тип | По-умолчанию |
|---|---|---|---|
| params | Условия выборки | Селектор класса | [] |
| Возвращает | Объект | Объект |
$object->childrens(params,force)
Получить непосредственные дочерние элементы. Если текущий объект содержит несколько элементов - в результирующем объекте окажутся дочерние элементы для каждого элемента.
| Аргумент | Описание | Тип | По-умолчанию |
|---|---|---|---|
| params | Условия выборки | Селектор класса | [] |
| force | Не брать из кеша | boolean | false |
| Возвращает | Объект | Объект |
$object->copyAfter(sibling_id)
Скопировать элемент. Установить скопированный элемент следующим после элемента sibling_id.
| Аргумент | Описание | Тип | По-умолчанию |
|---|---|---|---|
| sibling_id | id элемента, после которого необходимо переместить скопированный элемент | Поле id элемента обязательный | |
| Возвращает | Скопированный элемент | Объект |
$object->copyAppend(parent_id)
Скопировать элемент. Установить скопированный элемент последним в списке дочерних элементов элемента sibling_id.
| Аргумент | Описание | Тип | По-умолчанию |
|---|---|---|---|
| parent_id | id элемента, внутрь которого необходимо переместить скопированный элемент | Поле id элемента или 0 обязательный | |
| Возвращает | Скопированный элемент | Объект |
$object->copyВefore(sibling_id)
Скопировать элемент. Установить скопированный элемент последним в списке дочерних элементов элемента sibling_id.
| Аргумент | Описание | Тип | По-умолчанию |
|---|---|---|---|
| sibling_id | id элемента, перед которым необходимо переместить скопированный элемент | Поле id элемента обязательный | |
| Возвращает | Скопированный элемент | Объект |
$object->copyPrepend(parent_id)
Скопировать элемент. Установить скопированный элемент первым в списке дочерних элементов элемента sibling_id.
| Аргумент | Описание | Тип | По-умолчанию |
|---|---|---|---|
| parent_id | id элемента, внутрь которого необходимо переместить скопированный элемент | Поле id элемента или 0 обязательный | |
| Возвращает | Скопированный элемент | Объект |
$object->eq(index)
Выбор элемента из объекта по порядковому номеру
| Аргумент | Описание | Тип | По-умолчанию |
|---|---|---|---|
| index | Индекс элемента | int обязательное | |
| Возвращает | Объект | Объект |
$object->free()
Очистить кеш объекта и освободить память под него
| Возвращает | true | boolean |
|---|
$object->hasParent(parent_id)
Проверка принадлежности элемента к родителю
| Аргумент | Описание | Тип | По-умолчанию |
|---|---|---|---|
| parent_id | id родителя | Поле id родителя обязательный | |
| Возвращает | true в случае если элемент принадлежит родителю | boolean |
$object->image(params,force)
Получить единственный элемент галереи объекта, или пустое изображение если отсутствует
| Аргумент | Описание | Тип | По-умолчанию |
|---|---|---|---|
| params | Условия выборки | Селектор w_gallery | [] |
| force | Не брать из кеша | boolean | false |
| Возвращает | Объект галереи | Объект |
$object->images(params,force)
Получить элементы галереи объекта
| Аргумент | Описание | Тип | По-умолчанию |
|---|---|---|---|
| params | Условия выборки | Селектор w_gallery | [] |
| force | Не брать из кеша | boolean | false |
| Возвращает | Объект галереи | Объект |
$object->insert(object)
Скопировать элементы объекта object в текущий объект
$object->implode(glue,field)
Склеить значения полей через разделитель
| Аргумент | Описание | Тип | По-умолчанию |
|---|---|---|---|
| glue | Разделитель | string обязательный | |
| field | Имя поля | Поле обязательный | |
| Возвращает | Строка | string |
$object->length()
Количество элементов объекта
| Возвращает | Количество элементов | int |
|---|
$object->moveAfter(sibling_id)
Изменить порядок и родителя текущего элемента. Установить элемент следующим после элемента sibling_id.
| Аргумент | Описание | Тип | По-умолчанию |
|---|---|---|---|
| sibling_id | id элемента, после которого необходимо переместить текущий элемент | Поле id элемента обязательный | |
| Возвращает | true, в случае успеха | boolean |
$object->moveAppend(parent_id)
Изменить порядок и родителя текущего элемента. Установить элемент последним в списке дочерних элементов элемента sibling_id.
| Аргумент | Описание | Тип | По-умолчанию |
|---|---|---|---|
| parent_id | id элемента, внутрь которого необходимо переместить текущий элемент | Поле id элемента или 0 обязательный | |
| Возвращает | true, в случае успеха | boolean |
$object->moveВefore(sibling_id)
Изменить порядок и родителя текущего элемента. Установить элемент следующим перед элементом sibling_id.
| Аргумент | Описание | Тип | По-умолчанию |
|---|---|---|---|
| sibling_id | id элемента, перед которым необходимо переместить текущий элемент | Поле id элемента обязательный | |
| Возвращает | true, в случае успеха | boolean |
$object->movePrepend(parent_id)
Изменить порядок и родителя текущего элемента. Установить элемент первым в списке дочерних элементов элемента sibling_id.
| Аргумент | Описание | Тип | По-умолчанию |
|---|---|---|---|
| parent_id | id элемента, внутрь которого необходимо переместить текущий элемент | Поле id элемента или 0 обязательный | |
| Возвращает | true, в случае успеха | boolean |
$object->next(params,force)
Получить следующий элемент. Если текущий объект содержит несколько элементов - в результирующем объекте окажутся следующие элементы для каждого элемента.
| Аргумент | Описание | Тип | По-умолчанию |
|---|---|---|---|
| params | Условия выборки | Селектор класса | [] |
| force | Не брать из кеша | boolean | false |
| Возвращает | Объект | Объект |
$object->orderingSave()
Сохранить порядок заданный полем ordering текущего элемента(ов), пересортировать ветку в которой находится данный элемент.
| Аргумент | Описание | Тип | По-умолчанию |
|---|---|---|---|
| Возвращает | true, в случае успеха | boolean |
$object->pagintion(max)
Расчет пагинации
| Аргумент | Описание | Тип | По-умолчанию |
|---|---|---|---|
| max | Максимальное количество ключей | int | 10 |
| Возвращает | Массив ключей пагинации | array |
$object->parent(params,force)
Получить непосредственный родительский элемент. Если текущий объект содержит несколько элементов - в результирующем объекте окажутся родительские элементы для каждого элемента.
| Аргумент | Описание | Тип | По-умолчанию |
|---|---|---|---|
| params | Условия выборки | Селектор класса | [] |
| force | Не брать из кеша | boolean | false |
| Возвращает | Объект | Объект |
$object->parents(params,force)
Получить все родительские элементы. Если текущий объект содержит несколько элементов - в результирующем объекте окажутся родительские элементы для каждого элемента.
| Аргумент | Описание | Тип | По-умолчанию |
|---|---|---|---|
| params | Условия выборки | Селектор класса | [] |
| force | Не брать из кеша | boolean | false |
| Возвращает | Объект | Объект |
$object->parentSave()
Установить родителя, заданного полем parent_id текущего элемента(ов)
| Аргумент | Описание | Тип | По-умолчанию |
|---|---|---|---|
| Возвращает | true, в случае успеха | boolean |
$object->prev(params,force)
Получить предыдущий элемент уровня. Если текущий объект содержит несколько элементов - в результирующем объекте окажутся предыдущие элементы для каждого элемента.
| Аргумент | Описание | Тип | По-умолчанию |
|---|---|---|---|
| params | Условия выборки | Селектор класса | [] |
| force | Не брать из кеша | boolean | false |
| Возвращает | Объект | Объект |
$object->remove()
Удалить элементы объекта
| Возвращает | true, если удаление успешно | boolean |
|---|
$object->save()
Сохраняет элементы: все значения полей, свойства, родителей, порядок и алиасы
| Возвращает | true, в случае успеха |
|---|
$object->seekSiblings()
Получить массив объектов с элементами сгруппированными по ветке
| Возвращает | Массив объектов | [Объект] |
|---|
$object->seekSimular()
Получить массив объектов с элементами сгруппированными по классу
| Возвращает | Массив объектов | [Объект] |
|---|
$object->tree(params,force)
Получить дочерние элементы. Если текущий объект содержит несколько элементов - в результирующем объекте окажутся дочерние элементы для каждого элемента.
| Аргумент | Описание | Тип | По-умолчанию |
|---|---|---|---|
| params | Условия выборки | Селектор класса | [] |
| force | Не брать из кеша | boolean | false |
| Возвращает | Объект | Объект |
$object->unique()
Удаление дубликатов из набора
| Аргумент | Описание | Тип | По-умолчанию |
|---|---|---|---|
| Возвращает | true в случае успеха | boolean |
$object->value(params)
Получить единственное значение свойства
| Аргумент | Описание | Тип | По-умолчанию |
|---|---|---|---|
| params | id свойства, алиас свойства или условия выборки | Поле id объекта w_property, Поле alias объекта w_property,Селектор w_value | [] |
| Возвращает | Выбранные свойства | Объект w_value |
$object->valueAdd(property,values)
Добавить значение свойства. Запись происходит после вызова функции save() или valueSave()
| Аргумент | Описание | Тип | По-умолчанию |
|---|---|---|---|
| property | id или алиас свойства | Поле id объекта w_property, Поле alias объекта w_property обязательный | |
| values | Значения свойств | string, [string] обязательный | |
| Возвращает | true, в случае успеха | boolean |
$object->valueImplode(glue,params)
Получить значения свойств и склеить их через разделитель
| Аргумент | Описание | Тип | По-умолчанию |
|---|---|---|---|
| glue | разделитель | string обязательный | |
| params | id свойства, алиас свойства или условия выборки | Поле id объекта w_property, Поле alias объекта w_property,Селектор w_value | [] |
| Возвращает | Строка | string |
$object->values(params)
Получить значение свойств
| Аргумент | Описание | Тип | По-умолчанию |
|---|---|---|---|
| params | id свойства, алиас свойства или условия выборки | Поле id объекта w_property, Поле alias объекта w_property,Селектор w_value | [] |
| Возвращает | Выбранные свойства | Объект w_value |
$object->valueRemove(property,values)
Удалить значение свойства. Запись происходит после вызова функции save() или valueSave()
| Аргумент | Описание | Тип | По-умолчанию |
|---|---|---|---|
| property | id или алиас свойства | Поле id объекта w_property, Поле alias объекта w_property обязательный | |
| values | Удаляемые значения свойства. Если не указано - удалить все значения | string, [string] | |
| Возвращает | true, в случае успеха | boolean |
$object->valueSave()
Сохраняет значения свойств
| Аргумент | Описание | Тип | По-умолчанию |
|---|---|---|---|
| Возвращает | true, в случае успеха | boolean |
$object->valueSet(property,values)
Переписать значение свойства. Запись происходит после вызова функции save() или valueSave()
| Аргумент | Описание | Тип | По-умолчанию |
|---|---|---|---|
| property | id или алиас свойства | Поле id объекта w_property, Поле alias объекта w_property обязательный | |
| values | Значения свойств | string, [string] обязательный | |
| Возвращает | true, в случае успеха | boolean |
$object->valueSum(params)
Получить значения свойств и вычислить их сумму
| Аргумент | Описание | Тип | По-умолчанию |
|---|---|---|---|
| params | id свойства, алиас свойства или условия выборки | Поле id объекта w_property, Поле alias объекта w_property,Селектор w_value | [] |
| Возвращает | Сумму свойств | float |