Класс yii\base\Component
| Наследование | yii\base\Component » yii\base\Object |
|---|---|
| Реализует | yii\base\Configurable |
Компонент — базовый класс, реализующий возможности свойств, событий и поведения.
Компонент предоставляет возможности событий и поведения в дополнение к свойствам, реализованным в родительском классе Object.
Событие — способ «внедрить» собственный код в существующий код в определённых местах. Например, объект комментария может вызывать событие «добавление» при добавлении пользователем комментария. Мы можем написать собственный код и прикрепить его к этому событию, так что при срабатывании события (т.е. добавлении комментария) наш код будет выполнен.
Событие идентифицируется именем, которое должно быть уникальным в классе, в котором оно определено. Имена событий чувствительны к регистру.
Один или несколько PHP обратных вызовов, называемых обработчиками событий, могут быть прикреплены к событию. Вы можете вызвать trigger(), чтобы сгенерировать событие. Когда событие генерируется, обработчики событий будут вызваны автоматически в том порядке, в котором они были прикреплены.
Чтобы прикрепить обработчик события, вызовите on():
$post->on('update', function ($event) {
// send email notification
});
В приведенном выше примере анонимная функция прикреплена к событию «update» поста. Вы можете прикрепить следующие типы обработчиков событий:
- анонимная функция:
function ($event) { ... } - метод объекта:
[$object, 'handleAdd'] - статический метод класса:
['Page', 'handleAdd'] - глобальная функция:
'handleAdd'
Подпись обработчика события должна быть следующей:
function foo($event)
где $event — объект yii\base\Event, который включает параметры, связанные с событием.
Вы также можете прикрепить обработчик к событию при конфигурации компонента с помощью массива конфигурации. Синтаксис аналогичен следующему:
[
'on add' => function ($event) { ... }
]
где on add означает прикрепление события к событию add.
Иногда вы можете захотеть связать дополнительные данные с обработчиком события при его прикреплении к событию и затем получить доступ к ним при вызове обработчика. Вы можете сделать это, используя
$post->on('update', function ($event) {
// the data can be accessed via $event->data
}, $data);
Поведение — это экземпляр yii\base\Behavior или его дочернего класса. Компонент может быть прикреплён к одному или нескольким поведениям. Когда поведение прикрепляется к компоненту, к нему можно получить доступ через компонент напрямую, как если бы компонент владел этими свойствами и методами.
Чтобы прикрепить поведение к компоненту, объявите его в behaviors() или явно вызовите attachBehavior(). Поведения, объявленные в behaviors(), автоматически прикрепляются к соответствующему компоненту.
Также можно прикрепить поведение к компоненту при его конфигурации с помощью массива конфигурации. Синтаксис аналогичен следующему:
[
'as tree' => [
'class' => 'Tree',
],
]
где as tree означает прикрепление поведения с именем tree, а массив будет передан в Yii::createObject() для создания объекта поведения.
Для получения более подробной информации и руководства по использованию компонента, обратитесь к статье руководства по компонентам.
Свойства
| Свойство | Тип | Описание | Определено |
|---|---|---|---|
| $behaviors | yii\base\Behavior[] | Список прикрепленных к этому компоненту поведений | yii\base\Component |
Методы
| Метод | Описание | Определено |
|---|---|---|
| __call() | Вызывает именованный метод, который не является методом класса. | yii\base\Component |
| __clone() | Этот метод вызывается после создания объекта путем клонирования существующего. | yii\base\Component |
| __construct() | Конструктор. | yii\base\Object |
| __get() | Возвращает значение свойства компонента. | yii\base\Component |
| __isset() | Проверяет, установлено ли свойство, т. е. определено и не равно null. | yii\base\Component |
| __set() | Устанавливает значение свойства компонента. | yii\base\Component |
| __unset() | Устанавливает свойство компонента в значение null. | yii\base\Component |
| attachBehavior() | Прикрепляет поведение к этому компоненту. | yii\base\Component |
| attachBehaviors() | Прикрепляет список поведений к компоненту. | yii\base\Component |
| behaviors() | Возвращает список поведений, которые должен иметь этот компонент. | yii\base\Component |
| canGetProperty() | Возвращает значение, указывающее, можно ли прочитать свойство. | yii\base\Component |
| canSetProperty() | Возвращает значение, указывающее, можно ли установить свойство. | yii\base\Component |
| className() | Возвращает полное квалифицированное имя этого класса. | yii\base\Object |
| detachBehavior() | Отсоединяет поведение от компонента. | yii\base\Component |
| detachBehaviors() | Отсоединяет все поведения от компонента. | yii\base\Component |
| ensureBehaviors() | Убеждается, что поведения, объявленные в behaviors(), прикреплены к этому компоненту. | yii\base\Component |
| getBehavior() | Возвращает объект поведения с заданным именем. | yii\base\Component |
| getBehaviors() | Возвращает все поведения, прикрепленные к этому компоненту. | yii\base\Component |
| hasEventHandlers() | Возвращает значение, указывающее, есть ли обработчик, прикреплённый к указанному событию. | yii\base\Component |
| hasMethod() | Возвращает значение, указывающее, определён ли метод. | yii\base\Component |
| hasProperty() | Возвращает значение, указывающее, определено ли свойство для этого компонента. | yii\base\Component |
| init() | Инициализирует объект. | yii\base\Object |
| off() | Отсоединяет существующий обработчик события от этого компонента. | yii\base\Component |
| on() | Прикрепляет обработчик события к событию. | yii\base\Component |
| trigger() | Генерирует событие. | yii\base\Component |
Подробное описание свойств
$behaviors общедоступное только для чтения свойство
Список поведений, прикреплённых к этому компоненту
public yii\base\Behavior[] getBehaviors ( )
Подробное описание методов
__call() public method
Вызывает именованный метод, который не является методом класса.
Этот метод проверит, есть ли у присоединённого поведения именованный метод, и выполнит его, если он доступен.
Не вызывайте этот метод напрямую, так как это магический метод PHP, который будет неявно вызван при обращении к неизвестному методу.
| public mixed __call ( $name, $params ) | ||
|---|---|---|
| $name | string |
Имя метода |
| $params | array |
Параметры метода |
| return | mixed |
Значение возвращаемое методом |
| throws | yii\base\UnknownMethodException |
при обращении к неизвестному методу |
__clone() public method
Этот метод вызывается после создания объекта путём клонирования существующего.
Он удаляет все поведения, потому что они присоединены к старому объекту.
| public void __clone ( ) |
|---|
__get() public method
Возвращает значение свойства компонента.
Этот метод будет проверять в указанном порядке и действовать соответственно:
- свойство, определённое с помощью геттера: возвращает результат геттера
- свойство поведения: возвращает значение свойства поведения
Не вызывайте этот метод напрямую, так как это магический метод PHP, который будет неявно вызван при выполнении $value = $component->property;.
См. также __set().
| public mixed __get ( $name ) | ||
|---|---|---|
| $name | string |
Имя свойства |
| return | mixed |
Значение свойства или значение свойства поведения |
| throws | yii\base\UnknownPropertyException |
если свойство не определено |
| throws | yii\base\InvalidCallException |
если свойство только для записи. |
__isset() public method
Проверяет, установлено ли свойство, т.е. определено и не равно null.
Этот метод будет проверять в указанном порядке и действовать соответственно:
- свойство, определённое с помощью сеттера: возвращает, установлено ли свойство
- свойство поведения: возвращает, установлено ли свойство
- возвращает
falseдля несуществующих свойств
Не вызывайте этот метод напрямую, так как это магический метод PHP, который будет неявно вызван при выполнении isset($component->property).
См. также http://php.net/manual/en/function.isset.php.
| public boolean __isset ( $name ) | ||
|---|---|---|
| $name | string |
Имя свойства или имя события |
| return | boolean |
Установлено ли именованное свойство |
__set() public method
Устанавливает значение свойства компонента.
Этот метод будет проверять в указанном порядке и действовать соответственно:
- свойство, определённое с помощью сеттера: устанавливает значение свойства
- событие в формате "on xyz": прикрепляет обработчик к событию "xyz"
- поведение в формате "as xyz": прикрепляет поведение с именем "xyz"
- свойство поведения: устанавливает значение свойства поведения
Не вызывайте этот метод напрямую, так как это магический метод PHP, который будет неявно вызван при выполнении $component->property = $value;.
См. также __get().
| public void __set ( $name, $value ) | ||
|---|---|---|
| $name | string |
Имя свойства или имя события |
| $value | mixed |
Значение свойства |
| throws | yii\base\UnknownPropertyException |
если свойство не определено |
| throws | yii\base\InvalidCallException |
если свойство только для чтения. |
__unset() public method
Устанавливает свойство компонента в null.
Этот метод будет проверять в указанном порядке и действовать соответственно:
- свойство, определённое с помощью сеттера: устанавливает значение свойства в null
- свойство поведения: устанавливает значение свойства в null
Не вызывайте этот метод напрямую, так как это магический метод PHP, который будет неявно вызван при выполнении unset($component->property).
См. также http://php.net/manual/en/function.unset.php.
| public void __unset ( $name ) | ||
|---|---|---|
| $name | string |
Имя свойства |
| throws | yii\base\InvalidCallException |
если свойство только для чтения. |
attachBehavior() public method
Прикрепляет поведение к этому компоненту.
Этот метод создаст объект поведения на основе заданной конфигурации. После этого объект поведения будет прикреплён к этому компоненту, вызвав метод yii\base\Behavior::attach().
См. также detachBehavior().
| public yii\base\Behavior attachBehavior ( $name, $behavior ) | ||
|---|---|---|
| $name | string |
Имя поведения. |
| $behavior | string|array|yii\base\Behavior |
Конфигурация поведения. Может быть одним из следующих:
|
| return | yii\base\Behavior |
Объект поведения |
attachBehaviors() public method
Прикрепляет список поведений к компоненту.
Каждое поведение индексируется по имени и должно быть объектом yii\base\Behavior, строкой, определяющей класс поведения, или массивом конфигурации для создания поведения.
См. также attachBehavior().
| public void attachBehaviors ( $behaviors ) | ||
|---|---|---|
| $behaviors | array |
Список поведений, которые необходимо прикрепить к компоненту |
behaviors() public method
Возвращает список поведений, по которым должен вести себя этот компонент.
Подклассы могут переопределять этот метод, чтобы указать поведение, которое они хотят.
Значение, возвращаемое этим методом, должно быть массивом объектов поведения или конфигураций, индексированных по именам поведения. Конфигурация поведения может быть либо строкой, определяющей класс поведения, либо массивом следующей структуры:
'behaviorName' => [
'class' => 'BehaviorClass',
'property1' => 'value1',
'property2' => 'value2',
]
Обратите внимание, что класс поведения должен расширяться от yii\base\Behavior. Поведения могут быть прикреплены с именем или анонимно. При использовании имени в качестве ключа массива, используя это имя, поведение можно впоследствии получить с помощью getBehavior() или открепить с помощью detachBehavior(). Анонимные поведения не могут быть получены или откреплены.
Поведения, объявленные в этом методе, будут автоматически прикреплены к компоненту (по требованию).
| public array behaviors ( ) | ||
|---|---|---|
| return | array |
Конфигурации поведения. |
canGetProperty() public method
Возвращает значение, указывающее, можно ли считать свойство.
Свойство можно считать, если:
- у класса есть метод-геттер, связанный с указанным именем (в этом случае имя свойства не учитывает регистр);
- у класса есть переменная-член с указанным именем (когда
$checkVarsравно true); - прикреплённое поведение имеет читаемое свойство с данным именем (когда
$checkBehaviorsравно true).
См. также canSetProperty().
| public boolean canGetProperty ( $name, $checkVars = true, $checkBehaviors = true ) | ||
|---|---|---|
| $name | string |
Имя свойства |
| $checkVars | boolean |
Учитывать ли переменные члена как свойства |
| $checkBehaviors | boolean |
Учитывать ли свойства поведений как свойства этого компонента |
| return | boolean |
Можно ли считать свойство |
canSetProperty() public method
Возвращает значение, указывающее, можно ли установить свойство.
Свойство можно записать, если:
- у класса есть метод-сеттер, связанный с указанным именем (в этом случае имя свойства не учитывает регистр);
- у класса есть переменная члена с указанным именем (если
$checkVarsимеет значение true); - прикреплённое поведение имеет записываемое свойство с данным именем (если
$checkBehaviorsимеет значение true).
См. также canGetProperty().
| public boolean canSetProperty ( $name, $checkVars = true, $checkBehaviors = true ) | ||
|---|---|---|
| $name | string |
Имя свойства |
| $checkVars | boolean |
Учитывать ли переменные члена как свойства |
| $checkBehaviors | boolean |
Учитывать ли свойства поведений как свойства этого компонента |
| return | boolean |
Можно ли записать свойство |
detachBehavior() public method
Отсоединяет поведение от компонента.
Будет вызван метод yii\base\Behavior::detach() поведения.
| public null|yii\base\Behavior detachBehavior ( $name ) | ||
|---|---|---|
| $name | string |
Имя поведения. |
| return | null|yii\base\Behavior |
Отсоединенное поведение. Null, если поведение не существует. |
detachBehaviors() public method
Отсоединяет все поведения от компонента.
| public void detachBehaviors ( ) |
|---|
ensureBehaviors() public method
Убеждается, что поведения, объявленные в behaviors(), прикреплены к этому компоненту.
| public void ensureBehaviors ( ) |
|---|
getBehavior() public method
Возвращает объект поведения с заданным именем.
| public null|yii\base\Behavior getBehavior ( $name ) | ||
|---|---|---|
| $name | string |
Имя поведения |
| return | null|yii\base\Behavior |
Объект поведения или null, если поведение не существует |
getBehaviors() public method
Возвращает все поведения, прикрепленные к этому компоненту.
| public yii\base\Behavior[] getBehaviors ( ) | ||
|---|---|---|
| return | yii\base\Behavior[] |
Список прикрепленных к этому компоненту поведений |
hasEventHandlers() public method
Возвращает значение, указывающее, существует ли обработчик для события с указанным именем.
| public boolean hasEventHandlers ( $name ) | ||
|---|---|---|
| $name | string |
Имя события |
| return | boolean |
Существует ли обработчик для события. |
hasMethod() public method
Возвращает значение, указывающее, определён ли метод.
Метод определён, если:
- у класса есть метод с указанным именем
- у прикреплённого поведения есть метод с данным именем (если
$checkBehaviorsимеет значение true).
| public boolean hasMethod ( $name, $checkBehaviors = true ) | ||
|---|---|---|
| $name | string |
Имя свойства |
| $checkBehaviors | boolean |
Учитывать ли методы поведений как методы этого компонента |
| return | boolean |
Определён ли метод |
hasProperty() public method
Возвращает значение, указывающее, определено ли свойство для этого компонента.
Свойство определено, если:
- у класса есть методы-геттер или -сеттер, связанные с указанным именем (в этом случае регистр имени свойства не учитывается);
- у класса есть переменная члена с указанным именем (если
$checkVarsимеет значение true); - прикреплённое поведение имеет свойство с данным именем (если
$checkBehaviorsимеет значение true).
См. также:
| public boolean hasProperty ( $name, $checkVars = true, $checkBehaviors = true ) | ||
|---|---|---|
| $name | string |
Имя свойства |
| $checkVars | boolean |
Учитывать ли переменные члена как свойства |
| $checkBehaviors | boolean |
Учитывать ли свойства поведений как свойства этого компонента |
| return | boolean |
Определено ли свойство |
off() public method
Отсоединяет существующий обработчик событий от этого компонента.
Этот метод является противоположностью on().
См. также on().
| public boolean off ( $name, $handler = null ) | ||
|---|---|---|
| $name | string |
Имя события |
| $handler | callable |
Обработчик события, который нужно удалить. Если null, будут удалены все обработчики, прикрепленные к событию с указанным именем. |
| return | boolean |
Найден и отсоединён ли обработчик |
on() public method
Прикрепляет обработчик события к событию.
Обработчик события должен быть допустимым PHP callback. Вот некоторые примеры:
function ($event) { ... } // anonymous function
[$object, 'handleClick'] // $object->handleClick()
['Page', 'handleClick'] // Page::handleClick()
'handleClick' // global function handleClick()
Обработчик события должен быть определён со следующей сигнатурой,
function ($event)
где $event — объект yii\base\Event, содержащий параметры, связанные с событием.
См. также off().
| public void on ( $name, $handler, $data = null, $append = true ) | ||
|---|---|---|
| $name | string |
Имя события |
| $handler | callable |
Обработчик события |
| $data | mixed |
Данные, которые будут переданы обработчику события при срабатывании события. При вызове обработчика события эти данные доступны через yii\base\Event::$data. |
| $append | boolean |
Присоединить ли новый обработчик в конец существующего списка обработчиков. Если false, новый обработчик будет вставлен в начало существующего списка обработчиков. |
trigger() public method
Срабатывает событие.
Этот метод представляет собой событие. Он вызывает все прикрепленные обработчики события, включая обработчики на уровне класса.
| public void trigger ( $name, yii\base\Event $event = null ) | ||
|---|---|---|
| $name | string |
Имя события |
| $event | yii\base\Event |
Параметр события. Если не задан, будет создан объект yii\base\Event по умолчанию. |
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-base-component.html