DynamicFieldsObject
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
No description
Перегрузка чтения свойств класса.
Перегрузка записи свойств класса.
Возвращает активное соединение с БД в рамках приложения
Сохраняет пару ключ/значение в БД
Создает экземпляр нужного класса в зависимости от "Типа материалов".
Создает экземпляр нужного класса в зависимости от "Типа материалов", поля загружаются из БД, резульат кэшируется
Устанавливает поля объекта
Возвращает объект по ID и "Типу материалов".
No description
No description
No description
No description
Возвращает "Тип материалов" объекта
Возвращает таблицу БД, в которой хранятся поля объекта
Возвращает описание полей объекта
Возвращает прочитанное из БД поле объекта в соответствии с типом поля
No description
No description
No description
No description
Чтение из БД объектов, которые связаны полем $field с данным объектом.
DEPRECATED
DEPRECATED Чтение из БД объектов, которые связаны полем $field с объектом.
Удаляет объект из БД
Сохранение объекта
No description
Details
at line 192
__toString()
in Base at line 73
array
asArray()
Возвращает объект в виде массива с указанными полями
at line 211
mixed
__get(string $name)
Перегрузка чтения свойств класса.
Организуется доступ к полям объекта, созданным в конструкторе "Типы материалов" FastsiteCMS, как к свойствам объекта
at line 245
void
__set(string $name, mixed $value)
Перегрузка записи свойств класса.
Организуется доступ к полям объекта, созданным в конструкторе "Типы материалов" FastsiteCMS, как к свойствам объекта
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().' дней!';
in Base at line 192
__call($name, $arguments)
in Base at line 216
decodeLocaleString($str)
in DbConnection at line 22
final static Connection
getDbConnection()
Возвращает активное соединение с БД в рамках приложения
in DbConnection at line 35
static void
configSet(string $key, miced $value)
Сохраняет пару ключ/значение в БД
in DbConnection at line 47
static mixed
configGet(string $key)
Возвращает значение связанное с ключем из БД
in DbConnection at line 60
static mixed
configGetAll()
Возвращает все ключи/значения из БД
in DbConnection at line 78
static void
configUnset(string $key)
Удаляет пару ключ/значение из БД
at line 60
static DynamicFieldsObject
factory($type, $table = null, $fields = null)
Создает экземпляр нужного класса в зависимости от "Типа материалов".
at line 105
static DynamicFieldsObject
fetch(array $data, int|ObjectDefinition $type, string $table = null)
Создает экземпляр нужного класса в зависимости от "Типа материалов", поля загружаются из БД, резульат кэшируется
at line 151
setFields(array $fields)
Устанавливает поля объекта
at line 182
static DynamicFieldsObject
getByIdType($id, $type)
Возвращает объект по ID и "Типу материалов".
at line 226
__isset($name)
at line 268
static
clearLocks()
at line 276
lock($uid)
at line 285
unlock()
at line 295
int
getType()
Возвращает "Тип материалов" объекта
at line 305
string
getTable()
Возвращает таблицу БД, в которой хранятся поля объекта
at line 315
array
getFieldsDef()
Возвращает описание полей объекта
at line 328
mixed
getDynamicField(string $name)
Возвращает прочитанное из БД поле объекта в соответствии с типом поля
at line 366
offsetExists($offset)
at line 374
offsetGet($offset)
at line 382
offsetSet($offset, $value)
at line 385
offsetUnset($offset)
at line 557
Object
getLinkedObjects($od, $fieldName)
Чтение из БД объектов, которые связаны полем $field с данным объектом.
at line 589
Object
selectLinks(string $fieldname, string $fields = 'A.*', string $where = '', string $order = 'B.tag', string $group = '', string $limit = '')
deprecated
deprecated
DEPRECATED
Чтение из БД объектов, на которые ссылается поле
При построении SQL запроса к базе данных, таблице, из которой производится чтение полей объектов присваивается псевдоним "A", а таблице, в которой хранятся связи между объектами - "B". Рекомендуется использовать эти псевдонимы, если вы используете параметры $fields, $where, $order, $group, $limit
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
at line 711
void
delete()
Удаляет объект из БД
at line 779
abstract void
save()
Сохранение объекта