Класс yii\base\Object
| Наследование | yii\base\Object |
|---|---|
| Реализует | yii\base\Configurable |
Объект — это базовый класс, реализующий функцию свойств.
Свойство определяется методом-геттером (например, getLabel) и/или методом-сеттером (например, setLabel). Например, следующие методы-геттер и -сеттер определяют свойство с именем label:
private $_label;
public function getLabel()
{
return $this->_label;
}
public function setLabel($value)
{
$this->_label = $value;
}
Имена свойств регистронезависимы.
К свойству можно обратиться как к члену переменной объекта. Чтение или запись свойства вызовет вызов соответствующего метода-геттера или -сеттера. Например,
// equivalent to $label = $object->getLabel();
$label = $object->label;
// equivalent to $object->setLabel('abc');
$object->label = 'abc';
Если у свойства есть только метод-геттер и нет метода-сеттера, оно считается только для чтения. В этом случае попытка изменить значение свойства вызовет исключение.
Можно вызвать hasProperty(), canGetProperty() и/или canSetProperty(), чтобы проверить существование свойства.
Помимо функции свойств, Объект также представляет собой важный жизненный цикл инициализации объектов. В частности, создание нового экземпляра объекта Object или его производного класса будет включать следующие фазы жизненного цикла последовательно:
- вызывается конструктор класса;
- свойства объекта инициализируются в соответствии с заданной конфигурацией;
- вызывается метод
init().
В вышеприведённом примере шаги 2 и 3 выполняются в конце конструктора класса. Рекомендуется выполнять инициализацию объекта в методе init(), так как на этом этапе конфигурация объекта уже применена.
Для обеспечения вышеперечисленных жизненных циклов, если дочерний класс объекта Object должен переопределить конструктор, это должно быть сделано следующим образом:
public function __construct($param1, $param2, ..., $config = [])
{
...
parent::__construct($config);
}
То есть, параметр $config (по умолчанию []) должен быть объявлен как последний параметр конструктора, и реализация родительского класса должна вызываться в конце конструктора.
Публичные методы
| Метод | Описание | Определён в |
|---|---|---|
| __call() | Вызывает именованный метод, который не является методом класса. | yii\base\Object |
| __construct() | Конструктор. | yii\base\Object |
| __get() | Возвращает значение свойства объекта. | yii\base\Object |
| __isset() | Проверяет, установлено ли свойство, т.е. определено и не равно null. | yii\base\Object |
| __set() | Устанавливает значение свойства объекта. | yii\base\Object |
| __unset() | Устанавливает свойство объекта в значение null. | yii\base\Object |
| canGetProperty() | Возвращает значение, указывающее, можно ли прочитать свойство. | yii\base\Object |
| canSetProperty() | Возвращает значение, указывающее, можно ли установить свойство. | yii\base\Object |
| className() | Возвращает полное имя этого класса. | yii\base\Object |
| hasMethod() | Возвращает значение, указывающее, определён ли метод. | yii\base\Object |
| hasProperty() | Возвращает значение, указывающее, определено ли свойство. | yii\base\Object |
| init() | Инициализирует объект. | yii\base\Object |
Подробное описание методов
__call() общедоступный метод
Вызывает именованный метод, который не является методом класса.
Не вызывайте этот метод напрямую, так как это магический метод PHP, который будет неявно вызван при обращении к неизвестному методу.
| общедоступный смешанный __call ( $name, $params ) | ||
|---|---|---|
| $name | строка |
Имя метода |
| $params | массив |
Параметры метода |
| возвращает | смешанный |
Значение возврата метода |
| бросает | yii\base\UnknownMethodException |
при вызове неизвестного метода |
__construct() общедоступный метод
Конструктор.
Стандартная реализация выполняет два действия:
- Инициализирует объект заданной конфигурацией
$config. - Вызывает init().
Если этот метод переопределён в дочернем классе, рекомендуется:
- сделать массив конфигурации последним параметром конструктора, как в
$config. - вызвать родительскую реализацию в конце конструктора.
| общедоступный void __construct ( $config = [] ) | ||
|---|---|---|
| $config | массив |
Пара-значение, используемые для инициализации свойств объекта |
__get() общедоступный метод
Возвращает значение свойства объекта.
Не вызывайте этот метод напрямую, так как это магический метод PHP, который будет неявно вызван при выполнении $value = $object->property;.
См. также __set().
| общедоступный смешанный __get ( $name ) | ||
|---|---|---|
| $name | строка |
Имя свойства |
| возвращает | смешанный |
Значение свойства |
| бросает | yii\base\UnknownPropertyException |
если свойство не определено |
| бросает | yii\base\InvalidCallException |
если свойство только для записи |
__isset() общедоступный метод
Проверяет, установлено ли свойство, т.е. определено и не равно null.
Не вызывайте этот метод напрямую, так как это магический метод PHP, который будет неявно вызван при выполнении isset($object->property).
Обратите внимание, что если свойство не определено, будет возвращено false.
См. также http://php.net/manual/en/function.isset.php.
| общедоступный boolean __isset ( $name ) | ||
|---|---|---|
| $name | строка |
Имя свойства или имя события |
| возвращает | boolean |
Является ли указанное свойство установленным (не равно null). |
__set() общедоступный метод
Устанавливает значение свойства объекта.
Не вызывайте этот метод напрямую, так как это магический метод PHP, который будет неявно вызван при выполнении $object->property = $value;.
См. также __get().
| общедоступный void __set ( $name, $value ) | ||
|---|---|---|
| $name | строка |
Имя свойства или имя события |
| $value | смешанный |
Значение свойства |
| бросает | yii\base\UnknownPropertyException |
если свойство не определено |
| бросает | yii\base\InvalidCallException |
если свойство только для чтения |
__unset() общедоступный метод
Устанавливает свойство объекта в значение null.
Не вызывайте этот метод напрямую, так как это магический метод PHP, который будет неявно вызван при выполнении unset($object->property).
Обратите внимание, что если свойство не определено, этот метод ничего не сделает. Если свойство только для чтения, будет выброшено исключение.
См. также http://php.net/manual/en/function.unset.php.
| общедоступный void __unset ( $name ) | ||
|---|---|---|
| $name | строка |
Имя свойства |
| бросает | yii\base\InvalidCallException |
если свойство только для чтения. |
canGetProperty() общедоступный метод
Возвращает значение, указывающее, можно ли прочитать свойство.
Свойство можно прочитать, если:
- класс имеет метод-геттер, связанный с указанным именем (в этом случае регистр имени свойства не учитывается);
- класс имеет переменную-член с указанным именем (когда
$checkVarsравно true);
См. также canSetProperty().
| общедоступный boolean canGetProperty ( $name, $checkVars = true ) | ||
|---|---|---|
| $name | строка |
Имя свойства |
| $checkVars | boolean |
Учитывать ли переменные-члены как свойства |
| возвращает | boolean |
Можно ли прочитать свойство |
canSetProperty() общедоступный метод
Возвращает значение, указывающее, можно ли установить свойство.
Свойство можно записать, если:
- класс имеет метод-сеттер, связанный с указанным именем (в этом случае регистр имени свойства не учитывается);
- класс имеет переменную-член с указанным именем (когда
$checkVarsравно true);
См. также canGetProperty().
| общедоступный boolean canSetProperty ( $name, $checkVars = true ) | ||
|---|---|---|
| $name | строка |
Имя свойства |
| $checkVars | boolean |
Учитывать ли переменные-члены как свойства |
| возвращает | boolean |
Можно ли записать свойство |
className() общедоступный статический метод
Возвращает полное квалифицированное имя этого класса.
| общедоступный статический строка className ( ) | ||
|---|---|---|
| возвращает | строка |
Полное квалифицированное имя этого класса. |
hasMethod() общедоступный метод
Возвращает значение, указывающее, определён ли метод.
Стандартная реализация — вызов функции PHP method_exists(). Вы можете переопределить этот метод, когда реализуете магический метод PHP __call().
| общедоступный boolean hasMethod ( $name ) | ||
|---|---|---|
| $name | строка |
Имя метода |
| возвращает | boolean |
Определен ли метод |
hasProperty() общедоступный метод
Возвращает значение, указывающее, определено ли свойство.
Свойство определено, если:
- класс имеет метод-геттер или -сеттер, связанный с указанным именем (в этом случае регистр имени свойства не учитывается);
- класс имеет переменную-член с указанным именем (когда
$checkVarsравно true);
См. также:
| общедоступный boolean hasProperty ( $name, $checkVars = true ) | ||
|---|---|---|
| $name | строка |
Имя свойства |
| $checkVars | boolean |
Учитывать ли переменные-члены как свойства |
| возвращает | boolean |
Определено ли свойство |
init() общедоступный метод
Инициализирует объект.
Этот метод вызывается в конце конструктора после инициализации объекта заданной конфигурацией.
| общедоступный void init ( ) |
|---|
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-base-object.html