1. Go to this page and download the library: Download rusadrako/model_obj library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
rusadrako / model_obj example snippets
$data = new $class($obj_db, $class_obj_name, $class_obj_list_name);
namespace \test;
/** Класс data */
class data extends \RD_Obj_Data {
/** Настройки объекта */
protected function setting() {
$this->table_name = 'table_test'; # Имя таблицы в БД
}
/** Пример получения объекта со списком записей */
public function getList($where) {
# ... Дополнительные настройки
$sql = "SELECT :col: FROM :tab: WHERE {$where}";
$data = $this->select($sql);
return $data;
}
/** Пример получения объекта записи */
public function getItem($where) {
# ... Дополнительные настройки
$sql = "SELECT :col: FROM :tab: WHERE id = {$where}";
$data = $this->select($sql);
$data = $data->first();
return $data;
}
/** Пример получения объекта со списком записей с заполнением дополнительного свойства объекта */
public function getListAddProp($where) {
# ... Дополнительные настройки
$sql = "SELECT :col:, 1 AS ADD_NAME FROM :tab: WHERE id = {$where}";
$data = $this->select($sql);
$data = $data->first();
return $data;
}
# ... Методы расширения класса
}
namespace \test;
/** Класс item */
class item extends \RD_Obj_Item {
/** Подготовка данных к var_dump() и серилизации JSON (JsonSerializable) * /
protected function __preparationData($arr) {
$arr = parent::__preparationData($arr); # Получение массива для вывода
# ... Дополнительные настройки
return $arr;
}/**/
/** Настройки объекта */
protected function setting() {
# Ключевое поле объекта
$this->set_column_id('id'); # ID записи
# Остновные свойства объекта (переопределяются в процессе работы, сохраняется через save())
# Имя поля связанной таблицы => псевдоним (имя свойства)
$column = [
'id' => 'ID', # ID записи
'title' => 'TITLE', # Заголовок
'updated' => 'UPDATED', # Дата обновления
'created' => 'CREATED', # Дата создания
];
foreach ($column as $k => $v) {
$this->set_column_name($k, $v);
}
# Дополнительные свойства объекта (переопределяются в процессе работы, не сохраняется через save())
$add_prop = [
'ADD_NAME' => null,
];
foreach ($add_prop as $k => $v) {
$this->set_add_data($k, $v);
}
# Вычисляемые свойства объекта (в процессе работы не могут быть переопределены)
$function = [
'FUNC_NAME' => function() {return $this->TITLE . $this->ID;},
];
foreach ($function as $k => $v) {
$this->set_gen_data($k, $v);
}
# Объктные свойства объекта (в процессе работы не могут быть переопределены)
$object = [
'OBJ_NAME' => new \test\new_class(),
];
foreach ($object as $k => $v) {
$this->set_sub_obj($k, $v);
}
}
/** Фильтры при заполнении свойств объекта */
protected function filter($name, $value) {
switch ($name) {
case 'ID':
$value = (int) $value;
break;
}
return $value;
}
/** Сохранение записи */
public function save() {
# ... Дополнительные настройки
parent::save(); # Сохранения записи
}
# ... Методы расширения класса
}
namespace \test;
/** Класс list_t */
class list_t extends \RD_Obj_List {
/** Подготовка данных к var_dump() и серилизации JSON (JsonSerializable) * /
protected function __preparationData($arr) {
$arr = parent::__preparationData($arr); # Получение массива для вывода
# ... Дополнительные настройки
return $arr;
}/**/
# ... Методы расширения класса
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.