class Db_Object (Объекты ORM)
Объекты ORM – основополагающий класс для работы с данными ORM.
После того, как описана структура объекта в ORM, данными объектов можно манипулировать при помощи класса Db_Object:
class Db_Object {
* предпочтительнее использовать фабричный метод Db_Object::factory() * @param string $name * @param integer $id - optional * @throws Exception */
public function __construct($name, $id = false)
/** * Получить список полей объекта с описаниями их типов * @return array */
public function getFields()
/** * Получить данные объекта, будет возвращен ассоциативный массив «имя поля» * «имя свойства» => «значение свойства» * @return array */public function getData()
/** * Получить имя объекта * @return string */public function getName()
/** * Получить идентификатор объекта * @return integer */public function getId()
/** * Получить полное имя таблицы базы данных, хранящей данные объекта (с префиксом) * @return string */public function getTable()
/** * Проверить имеет ли объект измененные свойства, которые не были * сохранены в базу данных * @return boolean */public function hasUpdates()
/** * Получить объект конфигурации ORM (хелпер структуры данных) * @return Db_Object_Config */public function getConfig()
/** * Получить обновленные, но не сохраненные данные объекта * @return array */public function getUpdates()
/** * Установить идентификатор объекта* @param integer $id */
public function setId($id)
/** * Зафиксировать изменения данных объекта (не вызывает сохранения) * @return void */public function commitChanges()
/** * Проверить на существование поле объекта * @param string $name * @return boolean */public function fieldExists($name)
/** * Получить имя связанного объекта для поля * (доступно, если поле объекта является ссылкой на другой объект) * @param string $field - field name * @return string */public function getLinkedObject($field)
/** * Проверить, существуют ли все объекты из списка * @param string $name * @param mixed integer/array $ids * @return boolean */static public function objectExists($name , $ids)
/** * Установить свойства объекта, используя ассоциативный массив имен полей и значений * @param array $values * @throws Exception * @return void */public function setValues(array $values)
/** * Установить значение поля объекта * @param string $name * @param mixed $value * @throws Exception */public function set($name , $value)
/** * Получить значение поля объекта * В случае если до этого поле было обновлено, вернет новое значение * @param string $name - field name * @throws Exception * @return mixed */public function get($name)
/** * Получить исходное значение поля объекта (то что было получено из базы данных)* не зависимо от того было ли обновлено значение поля * @param string $name - field name * @return mixed */
public function getOld($name)
/** * Сохранить изменения * @param boolean $log - логировать изменения * @param boolean $useTransdaction — опционально,* использовать ли при возможности транзакцию при изменении данных, если в вашем коде
* происходит обновление данных в рамках внешней транзакции, установите свойство в false,
* иначе первое же обновление приведет к фиксации изменений * @return boolean; */
public function save($log = true , $useTransdaction = true)
/** * Удаление объекта * @param boolean $useTransdaction — опционально,* использовать ли при возможности транзакцию при изменении данных, если в вашем коде
* происходит обновление данных в рамках внешней транзакции, установите свойство в false,
* иначе первое же обновление приведет к фиксации изменений * @return boolean - success */
public function delete($useTransdaction = true)
/** * Провести валидацию уникальных полей, групп полей объекта * Возвращает массив ошибок или false, используется для взаимодействия с ExtJS формами * @property boolean $new * @return mixed false / array */public function validateUniqueValues()
/** Фабричный метод создания объекта, предпочтителен для использования, см. описание метода __construct() * @param string $name — имя объекта * @param integer $id — идентификатор объекта* @throws Exception * @return Db_Object */
static public function factory($name , $id = false)
}
Пример:
$news = new Db_Object('news');
$news->title = 'Новость 1';
$news->text = 'Содержание новости';
$news->news_date = date('Y-m-d');
$news->save();
Как видно из примера, свойства (поля) объекта назначаются обычным методом.
В случае если мы пытаемся указать несуществующее свойство или задать значение,
неудовлетворяющее указанному в конфигурации типу, будет брошен Exception.
Сохранение данных производится путем вызова метода save.
comments powered by Disqus