abstract class DynamicFieldsObject extends Base implements ArrayAccess

Абстрактный класс для объектов системы с настраиваемыми полями (Материалы, Пользователи).

Traits

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

Properties

static $plugins Плагины from Base
int $id идентификатор объекта from Base
array $fields Значения полей объекта
array $raw_fields Значения полей объекта? считанные из БД
array $_objectDefinition Описание объекта

Methods

__toString()

No description

array
asArray()

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

from Base
mixed
__get(string $name)

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

void
__set(string $name, mixed $value)

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

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)

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

factory($type, $table = null, $fields = null)

Создает экземпляр нужного класса в зависимости от "Типа материалов".

fetch(array $data, int|ObjectDefinition $type, string $table = null)

Создает экземпляр нужного класса в зависимости от "Типа материалов", поля загружаются из БД, резульат кэшируется

setFields(array $fields)

Устанавливает поля объекта

getByIdType($id, $type)

Возвращает объект по ID и "Типу материалов".

__isset($name)

No description

static 
clearLocks()

No description

lock($uid)

No description

unlock()

No description

int
getType()

Возвращает "Тип материалов" объекта

string
getTable()

Возвращает таблицу БД, в которой хранятся поля объекта

array
getFieldsDef()

Возвращает описание полей объекта

mixed
getDynamicField(string $name)

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

offsetExists($offset)

No description

offsetGet($offset)

No description

offsetSet($offset, $value)

No description

offsetUnset($offset)

No description

Object
getLinkedObjects($od, $fieldName)

Чтение из БД объектов, которые связаны полем $field с данным объектом.

Object
selectLinks(string $fieldname, string $fields = 'A.*', string $where = '', string $order = 'B.tag', string $group = '', string $limit = '') deprecated

DEPRECATED

Object
selectLinksIn(int|string $from, string $field, string $fields = '*', string $where = '', string $order = '', string $group = '', string $limit = '')

DEPRECATED Чтение из БД объектов, которые связаны полем $field с объектом.

void
delete()

Удаляет объект из БД

void
save()

Сохранение объекта

setObjectDefinition($od)

No description

Details

at line 192
__toString()

in Base at line 73
array asArray()

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

Return Value

array

at line 211
mixed __get(string $name)

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

Организуется доступ к полям объекта, созданным в конструкторе "Типы материалов" FastsiteCMS, как к свойствам объекта

Parameters

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

Return Value

mixed

Exceptions

LogicException

at line 245
void __set(string $name, mixed $value)

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

Организуется доступ к полям объекта, созданным в конструкторе "Типы материалов" FastsiteCMS, как к свойствам объекта

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 60
static DynamicFieldsObject factory($type, $table = null, $fields = null)

Создает экземпляр нужного класса в зависимости от "Типа материалов".

Parameters

$type
$table
$fields

Return Value

DynamicFieldsObject

at line 105
static DynamicFieldsObject fetch(array $data, int|ObjectDefinition $type, string $table = null)

Создает экземпляр нужного класса в зависимости от "Типа материалов", поля загружаются из БД, резульат кэшируется

Parameters

array $data поля объекта
int|ObjectDefinition $type "Тип материалов" объекта
string $table Таблица БД, в которой хранятся объекты

Return Value

DynamicFieldsObject

at line 151
setFields(array $fields)

Устанавливает поля объекта

Parameters

array $fields поля объекта

at line 182
static DynamicFieldsObject getByIdType($id, $type)

Возвращает объект по ID и "Типу материалов".

Parameters

$id
$type

Return Value

DynamicFieldsObject

at line 226
__isset($name)

Parameters

$name

at line 268
static clearLocks()

at line 276
lock($uid)

Parameters

$uid

at line 285
unlock()

at line 295
int getType()

Возвращает "Тип материалов" объекта

Return Value

int

at line 305
string getTable()

Возвращает таблицу БД, в которой хранятся поля объекта

Return Value

string

at line 315
array getFieldsDef()

Возвращает описание полей объекта

Return Value

array

at line 328
mixed getDynamicField(string $name)

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

Parameters

string $name имя поля

Return Value

mixed

at line 366
offsetExists($offset)

Parameters

$offset

at line 374
offsetGet($offset)

Parameters

$offset

at line 382
offsetSet($offset, $value)

Parameters

$offset
$value

at line 385
offsetUnset($offset)

Parameters

$offset

at line 557
Object getLinkedObjects($od, $fieldName)

Чтение из БД объектов, которые связаны полем $field с данным объектом.

Parameters

$od
$fieldName

Return Value

Object

deprecated

DEPRECATED

Чтение из БД объектов, на которые ссылается поле

При построении SQL запроса к базе данных, таблице, из которой производится чтение полей объектов присваивается псевдоним "A", а таблице, в которой хранятся связи между объектами - "B". Рекомендуется использовать эти псевдонимы, если вы используете параметры $fields, $where, $order, $group, $limit

Parameters

string $fieldname имя поля
string $fields поля, которые запрашивать из таблицы БД при выборке
string $where параметр WHERE запроса
string $order параметр ORDER BY запроса
string $group параметр GROUP BY запроса
string $limit параметр LIMIT запроса

Return Value

Object

at line 663
Object selectLinksIn(int|string $from, string $field, string $fields = '*', string $where = '', string $order = '', string $group = '', string $limit = '')

DEPRECATED Чтение из БД объектов, которые связаны полем $field с объектом.

При построении SQL запроса к базе данных, таблице, из которой производится чтение полей объектов присваивается псевдоним "A", а таблице, в которой хранятся связи между объектами - "B". Рекомендуется использовать эти псевдонимы, если вы используете параметры $fields, $where, $order, $group, $limit

Parameters

int|string $from ID "Типа материалов" или имя таблицы БД, в которой хранятся объекты
string $field имя поля по которому объекты связаны с текущим
string $fields поля, которые запрашивать из таблицы БД при выборке
string $where параметр WHERE запроса
string $order параметр ORDER BY запроса
string $group параметр GROUP BY запроса
string $limit параметр LIMIT запроса

Return Value

Object

at line 711
void delete()

Удаляет объект из БД

Return Value

void

at line 779
abstract void save()

Сохранение объекта

Return Value

void

at line 1106
setObjectDefinition($od)

Parameters

$od