class ObjectDefinition extends Base

Класс реализующий управление типами материалов системы

Traits

Используется в классах, которым необходимо работать с БД.

Properties

static $plugins
int $id идентификатор объекта from Base
static $userClasses Пользовательские классы для определенных типов материалов
static $reserved_aliases

Methods

__toString()

No description

from Base
array
asArray()

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

from Base
mixed
__get(string $name)

Перегрузка чтения свойств класса.

from Base
void
__set(string $name, mixed $value)

Перегрузка записи свойств класса.

from Base
static void
addPlugin(ObjectPlugin $class)

Расширяет функциональность класса с помощью методов другого класса.

from Base
__call($name, $arguments)

No description

from Base
decodeLocaleString($str)

No description

from Base
static Connection
getDbConnection()

Возвращает активное соединение с БД в рамках приложения

static void
configSet(string $key, miced $value)

Сохраняет пару ключ/значение в БД

static mixed
configGet(string $key)

Возвращает значение связанное с ключем из БД

static mixed
configGetAll()

Возвращает все ключи/значения из БД

static void
configUnset(string $key)

Удаляет пару ключ/значение из БД

static 
enum()

No description

findByTable(string $table)

Найти тип материалов по имени таблицы в БД

findByAlias(string $alias)

Найти тип материалов по alias

findById(int $id)

Найти тип материалов по ID

getById(int $id)

Найти тип материалов по ID

static void
registerClass(int $id, string $className = null)

Зарегистрировать пользовательский класс для определенного типа материалов

create()

Создает новый тип материалов

__construct($id = null, $table = null)

No description

getId()

No description

getTable()

No description

getAlias()

No description

getDescription()

No description

getFixed()

No description

setPlugin($file)

No description

getPlugins()

No description

array
getFields(int|Catalog $dir = null)

Возвращает все поля данного типа материалов

getField(string $fieldName)

Возвращает поле данного типа материалов

boolean
hasField(string $fieldName)

Возвращает true если существует поле у данного типа материалов

delete()

Удаляет тип материалов

update(array $params)

Изменяет тип материалов

addField(array $params)

Добавляет новое поле в тип материалов

updateField(array $params)

Изменяет поле в типе материалов

getMaterials()

Возвращает материалы данного типа

Catalog
getCatalogs()

Возвращает разделы с материалами данного типа

static 
fix_params($params)

No description

static 
fix_field_params($params)

No description

static 
create_link_table($fieldtable, $fieldname, $type, $len, $id, $pseudo_type)

No description

static 
drop_link_table($fieldtable, $fieldname, $type, $len, $id, $pseudo_type)

No description

static 
get_table($field_type, $len, $type_id, $pseudo_type)

No description

getDescriptionDisplay()

No description

toArray()

No description

static 
regenerateClasses()

No description

Details

in Base at line 63
__toString()

in Base at line 73
array asArray()

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

Return Value

array

in Base at line 108
mixed __get(string $name)

Перегрузка чтения свойств класса.

Если в классе существует метод getСвойство(), то вызывается этот метод Если в классе существует поле $_свойство, то возвращается это поле В противном случает бросается исключение

Parameters

string $name свойство класса

Return Value

mixed

Exceptions

LogicException

in Base at line 132
void __set(string $name, mixed $value)

Перегрузка записи свойств класса.

Если в классе существует метод setСвойство(), то вызывается этот метод Если в классе существует поле $свойство, то полю присваивается значение свойства В противном случает бросается исключение

Parameters

string $name свойство класса
mixed $value значение свойства

Return Value

void

Exceptions

LogicException

in Base at line 180
static void addPlugin(ObjectPlugin $class)

Расширяет функциональность класса с помощью методов другого класса.

Например, необходимо добавить в клас \Cetera\User метод, возвращающий кол-во дней, которые прошли с момента регистрации пользователя. Создадим класс-плагин:

class MyUser extends \Cetera\ObjectPlugin {
    public function getRegisteredDays() {
        // экземпляр класса, к каторому будет добавлен плагин находится в свойстве object
        $date_reg = new DateTime($this->object->date_reg);
        $date_now = new DateTime('now');
        $diff = $date_now->getTimestamp() - $date_reg->getTimestamp();
        return ceil($diff / (60*60*24));
    }
}

Добавим плагин к классу \Cetera\User:

\Cetera\User::addPlugin( 'MyUser' );

Теперь можем использовать метод \Cetera\User::getRegisteredDays():

$user = \Cetera\Application::getInstance()->getUser();
echo 'Я с вами '.$user->getRegisteredDays().' дней!';

Parameters

ObjectPlugin $class класс, методы которого добавить к данному

Return Value

void

in Base at line 192
__call($name, $arguments)

Parameters

$name
$arguments

in Base at line 216
decodeLocaleString($str)

Parameters

$str

in DbConnection at line 22
final static Connection getDbConnection()

Возвращает активное соединение с БД в рамках приложения

Return Value

Connection

in DbConnection at line 35
static void configSet(string $key, miced $value)

Сохраняет пару ключ/значение в БД

Parameters

string $key ключ
miced $value значение

Return Value

void

in DbConnection at line 47
static mixed configGet(string $key)

Возвращает значение связанное с ключем из БД

Parameters

string $key ключ

Return Value

mixed

in DbConnection at line 60
static mixed configGetAll()

Возвращает все ключи/значения из БД

Return Value

mixed

in DbConnection at line 78
static void configUnset(string $key)

Удаляет пару ключ/значение из БД

Parameters

string $key ключ

Return Value

void

at line 86
static enum()

at line 104
static ObjectDefinition findByTable(string $table)

Найти тип материалов по имени таблицы в БД

Parameters

string $table Таблица БД типа материалов

Return Value

ObjectDefinition

at line 117
static ObjectDefinition findByAlias(string $alias)

Найти тип материалов по alias

Parameters

string $alias Alias типа материалов

Return Value

ObjectDefinition

at line 128
static ObjectDefinition findById(int $id)

Найти тип материалов по ID

Parameters

int $id ID типа материалов

Return Value

ObjectDefinition

at line 139
static ObjectDefinition getById(int $id)

Найти тип материалов по ID

Parameters

int $id ID типа материалов

Return Value

ObjectDefinition

at line 151
static void registerClass(int $id, string $className = null)

Зарегистрировать пользовательский класс для определенного типа материалов

Parameters

int $id ID типа материалов или имя класса. Класс должен быть наследником \Cetera\MaterialUser
string $className Имя класса. Класс должен быть наследником \Cetera\Material

Return Value

void

at line 173
static ObjectDefinition create()

Создает новый тип материалов

Return Value

ObjectDefinition

Exceptions

CMS если тип с таким alias уже существует
CMS если alias зарезервирован

at line 223
__construct($id = null, $table = null)

Parameters

$id
$table

at line 244
getId()

at line 283
getTable()

at line 292
getAlias()

at line 300
getDescription()

at line 310
getFixed()

at line 318
setPlugin($file)

Parameters

$file

at line 326
getPlugins()

at line 340
array getFields(int|Catalog $dir = null)

Возвращает все поля данного типа материалов

Parameters

int|Catalog $dir если указан раздел, то учитывается видимость полей, заданная для этого раздела

Return Value

array

at line 378
ObjectField getField(string $fieldName)

Возвращает поле данного типа материалов

Parameters

string $fieldName имя поля

Return Value

ObjectField

at line 393
boolean hasField(string $fieldName)

Возвращает true если существует поле у данного типа материалов

Parameters

string $fieldName имя поля

Return Value

boolean

at line 401
delete()

Удаляет тип материалов

at line 428
ObjectDefinition update(array $params)

Изменяет тип материалов

Parameters

array $params параметры типа материалов:
alias - alias типа, он же название создаваемой таблицы БД под этот тип материалов
fixed - системный тип (невозможно удалить из админки)

Return Value

ObjectDefinition

at line 494
addField(array $params)

Добавляет новое поле в тип материалов

Parameters

array $params параметры поля

at line 541
updateField(array $params)

Изменяет поле в типе материалов

Parameters

array $params параметры поля

at line 667
Material getMaterials()

Возвращает материалы данного типа

Return Value

Material

at line 679
Catalog getCatalogs()

Возвращает разделы с материалами данного типа

Return Value

Catalog

at line 705
static fix_params($params)

Parameters

$params

at line 717
static fix_field_params($params)

Parameters

$params

Parameters

$fieldtable
$fieldname
$type
$len
$id
$pseudo_type

Parameters

$fieldtable
$fieldname
$type
$len
$id
$pseudo_type

at line 761
static get_table($field_type, $len, $type_id, $pseudo_type)

Parameters

$field_type
$len
$type_id
$pseudo_type

at line 777
getDescriptionDisplay()

at line 782
toArray()

at line 793
static regenerateClasses()