Описание:
Возвращает объект (экземпляр класса umiObject) с id равным $objectId. Если такого не существует, вернет false.
Это основной метод получения доступа к объектам (экземплярам класса umiObject) в системе. Доступ к объектам может понадобиться разработчику по двум причинам: во-первых, объекты хранят свойства элементов, и в некоторых случаях доступ к свойствам необходимо осуществлять через объект; во-вторых - объекты многих типов существуют в системе без привязки к элементам иерархии, а имеют самомтоятельную ценность в качестве единиц хранения данных (например, пользователи, баннеры или объекты-элементы справочников). Соответтственно, если разработчику требуется получить какой-либо объект, то он не может (не должен) создать его экземпляр напрямую, а должен использовать данный метод (getObject) данного класса (другой случай - когда объект или массив объектов получаются в качестве значения, возвращаемого каким-либо методом). В принципе, такое поведение типично для всех классов-коллекций в программной архитектуре системы (в чем, собственно говоря, и заключается назначение классов-коллекций).
Пример кода:
<?php
/*
Пример метода, возвращающего имя объекта
Назначение метода - возвращать некоторое значение по умолчанию, если объект с указанным id не существует в коллекции
*/
public function getObjectNameSafe($iObjectId, $sDefaultName = 'NoName') {
$sReturnValue = $sDefaultName;
//
$oObjectsColl = umiObjectsCollection::getInstance();
if ($oObjectsColl->isExists($iObjectId)) {
$oObject = $oObjectsColl->getObject($iObjectId); // экземпляр объекта необходимо получать через коллекцию
if ($oObject instanceof umiObject) {
$sReturnValue = $oObject->getName();
}
}
//
return $sReturnValue;
}
?>
<?php
/*
А это - НЕПРАВИЛЬНЫЙ способ получить экземпляр объекта :
*/
public function getObjectNameInvalid($iObjectId, $sDefaultName = 'NoName') {
$sReturnValue = $sDefaultName;
//
$oObject = new umiObject($iObjectId); // НЕ ПРАВИЛЬНО, используйте umiObjectsCollection::getInstance()->getObject($iObjectId)
if ($oObject instanceof umiObject) $sReturnValue = $oObject->getName();
//
return $sReturnValue;
}
?>