Класс BehaviorRegistry
BehaviorRegistry используется в качестве реестра загруженных поведений и обрабатывает загрузку и создание объектов поведения.
Этот класс также предоставляет методы для проверки и вызова методов поведения.
- Cake\Core\ObjectRegistry implements Countable, IteratorAggregate
-
Cake\ORM\BehaviorRegistry implements Cake\Event\EventDispatcherInterface uses Cake\Event\EventDispatcherTrait
Краткое описание свойств
-
$_finderMapprotectedСопоставления методов поиска.array -
$_methodMapprotectedСопоставления методов.array - Таблица, использующая этот реестр.
$_tableprotected
Унаследованные свойства
Краткое описание методов
- __construct() publicКонструктор
- _create() protectedСоздание экземпляра поведения.
- _getMethods() protectedПолучение методов поведения и проверка отсутствия дубликатов.
- _resolveClassName() protectedРазрешение имени класса поведения.
- _throwMissingClassError() protectedВыбрасывает исключение, если поведение отсутствует.
- call() publicВызов метода поведения.
- callFinder() publicВызов метода поиска поведения.
- Разрешение имени класса поведения.
- hasFinder() publicПроверка, реализует ли какое-либо загруженное поведение указанный метод поиска.
- hasMethod() publicПроверка, реализует ли какое-либо загруженное поведение метод.
- setTable() publicПрисоединяет экземпляр таблицы к этому реестру.
Подробное описание методов
__construct()source public
__construct( Cake\ORM\Table|null $table null )
Конструктор
Параметры
-
Cake\ORM\Table|null$tableпо умолчанию null - Таблица, к которой прикреплён этот реестр.
_create()source protected
_create( string $class , string $alias , array $config )
Создание экземпляра поведения.
Часть шаблонного метода для Cake\Core\ObjectRegistry::load() Включённые поведения будут зарегистрированы в диспетчере событий.
Параметры
- string
$class - Имя класса, которого нет.
- string
$alias - Алиас объекта.
- array
$config - Массив настроек для поведения.
Возвращает
Cake\ORM\BehaviorСозданный класс поведения.
_getMethods()source protected
_getMethods( Cake\ORM\Behavior $instance , string $class , string $alias )
Получение методов поведения и проверка отсутствия дубликатов.
Используйте метод implementedEvents() для исключения методов обратного вызова. Методы, начинающиеся с _ , будут проигнорированы, так же как и методы, объявленные в Cake\ORM\Behavior
Параметры
-
Cake\ORM\Behavior$instance - Поведение, для которого нужно получить методы.
- string
$class - Имя класса, которого нет.
- string
$alias - Алиас объекта.
Возвращает
arrayСписок реализованных методов поиска и поведения.
Исключения
LogicExceptionпри обнаружении дублирующихся методов.
_resolveClassName()source protected
_resolveClassName( string $class )
Разрешение имени класса поведения.
Часть шаблонного метода для Cake\Core\ObjectRegistry::load()
Параметры
- string
$class - Частичное имя класса для разрешения.
Возвращает
string|falseПравильное имя класса или false.
_throwMissingClassError()source protected
_throwMissingClassError( string $class , string $plugin )
Выбрасывает исключение, если поведение отсутствует.
Часть шаблонного метода для Cake\Core\ObjectRegistry::load() и Cake\Core\ObjectRegistry::unload()
Параметры
- string
$class - Имя отсутствующего класса.
- string
$plugin - Плагин, в котором отсутствует поведение.
Исключения
Cake\ORM\Exception\MissingBehaviorExceptioncall()source public
call( string $method , array $args [] )
Вызов метода поведения.
Параметры
- string
$method - Метод для вызова.
- array
$argsпо умолчанию [] - Аргументы для вызова метода.
Возвращает
mixedВозвращаемое значение зависит от метода поведения.
Исключения
BadMethodCallExceptionЕсли метод неизвестен.
callFinder()source public
callFinder( string $type , array $args [] )
Вызов метода поиска поведения.
Параметры
- string
$type - Тип метода поиска для вызова.
- array
$argsпо умолчанию [] - Аргументы для вызова метода.
Возвращает
mixedВозвращаемое значение зависит от метода поведения.
Исключения
BadMethodCallExceptionЕсли метод неизвестен.
className()source public static
className( string $class )
Разрешение имени класса поведения.
Параметры
- string
$class - Частичное имя класса для разрешения.
Возвращает
string|nullПравильное имя класса или null.
С момента
3.5.7hasFinder()source public
hasFinder( string $method )
Проверка, реализует ли какое-либо загруженное поведение указанный метод поиска.
Возвращает true, если какое-либо поведение предоставляет публичный метод с указанным именем.
Параметры
- string
$method - Метод для проверки.
Возвращает
booleanhasMethod()source public
hasMethod( string $method )
Проверка, реализует ли какое-либо загруженное поведение метод.
Возвращает true, если какое-либо поведение предоставляет публичный метод, не являющийся методом поиска, с указанным именем.
Параметры
- string
$method - Метод для проверки.
Возвращает
booleansetTable()source public
setTable( Cake\ORM\Table $table )
Присоединяет экземпляр таблицы к этому реестру.
Параметры
-
Cake\ORM\Table$table - Таблица, к которой прикреплён этот реестр.
Унаследованные методы из Cake\Core\ObjectRegistry
__get()source public
__get( string $name )
Предоставляет публичный доступ для чтения к загруженным объектам
Параметры
- string
$name - Имя свойства для чтения
Возвращает
mixed__isset()source public
__isset( string $name )
Предоставляет доступ isset к _loaded
Параметры
- string
$name - Имя проверяемого объекта.
Возвращает
boolean__set()source public
__set( string $name , mixed $object )
Устанавливает объект.
Параметры
- string
$name - Имя свойства для установки.
- mixed
$object - Объект для установки.
__unset()source public
__unset( string $name )
Удаляет объект.
Параметры
- string
$name - Имя свойства для удаления.
_checkDuplicate()source protected
_checkDuplicate( string $name , array $config )
Проверка на дублирование загрузки объекта.
Если загружается дубликат с другим конфигурацией, это плохо, и будет выброшено исключение.
Исключение выбрасывается, так как замена объекта не обновит никакие ссылки, которые могут иметь другие объекты. Кроме того, простое обновление конфигурации во время выполнения не является хорошим вариантом, так как мы можем упустить важную логику конструктора, зависящую от конфигурации.
Параметры
- string
$name - Имя псевдонима в реестре.
- array
$config - Данные конфигурации для нового экземпляра.
Исключения
RuntimeExceptionПри обнаружении дубликата.
count()source public
count( )
Возвращает количество загруженных объектов.
Возвращает
integerРеализация
Countable::count() get()source public
get( string $name )
Получение экземпляра загруженного объекта.
Параметры
- string
$name - Имя объекта.
Возвращает
object|nullЭкземпляр объекта, если загружен, иначе null.
getIterator()source public
getIterator( )
Возвращает итератор массива.
Возвращает
ArrayIteratorРеализация
IteratorAggregate::getIterator() has()source public
has( string $name )
Проверка, загружен ли данный объект.
Параметры
- string
$name - Имя объекта для проверки.
Возвращает
booleanTrue, если объект загружен, иначе false.
load()source public
load( string $objectName , array $config [] )
Загрузка/создание экземпляра объекта.
Возвратит экземпляр из реестра, если он уже существует. Если подкласс поддерживает события, вы можете использовать $config['enabled'] = false для исключения созданных объектов из регистрации на события.
Пример с Cake\Controller\Controller::$components. Вы можете назначить псевдоним объекту, установив ключ 'className', например:
public $components = [
'Email' => [
'className' => '\App\Controller\Component\AliasedEmailComponent'
];
]; Все вызовы компонента Email будут использовать AliasedEmail вместо этого.
Параметры
- string
$objectName - Имя/класс объекта для загрузки.
- array
$configoptional [] - Дополнительные настройки для загрузки объекта.
Возвращает
mixedloaded()source public
loaded( )
Получить список загруженных объектов.
Возвращает
arrayСписок имён объектов.
normalizeArray()source public
normalizeArray( array $objects )
Нормализует массив объектов, создаёт массив, который упрощает ленивую загрузку
Параметры
- array
$objects - Массив дочерних объектов для нормализации.
Возвращает
arrayМассив нормализованных объектов.
reset()source public
reset( )
Очистить загруженные экземпляры в реестре.
Если подкласс реестра имеет менеджер событий, объекты также будут отсоединены от событий.
Возвращает
$this
set()source public
set( string $objectName , object $object )
Установка объекта непосредственно в реестр по имени.
Если эта коллекция поддерживает события, переданный объект будет прикреплён к менеджеру событий
Параметры
- string
$objectName - Имя объекта для установки в реестре.
- object
$object - экземпляр для хранения в реестре
Возвращает
$this
unload()source public
unload( string $objectName )
Удаление объекта из реестра.
Если у этого реестра есть менеджер событий, объект также будет отсоединён от любых событий.
Параметры
- string
$objectName - Имя объекта для удаления из реестра.
Возвращает
$this
Методы, используемые из Cake\Event\EventDispatcherTrait
dispatchEvent()source public
dispatchEvent( string $name , array|null $data null , object|null $subject null )
Обёртка для создания и отправки событий.
Возвращает обработанное событие.
Параметры
- string
$name - Имя события.
- array|null
$dataoptional null Любое значение, которое вы хотите передать с этим событием, его могут прочитать слушатели.
- object|null
$subjectoptional null Объект, к которому относится это событие ($this по умолчанию).
Возвращает
Cake\Event\EventeventManager()source public
eventManager( Cake\Event\EventManager $eventManager null )
Возвращает экземпляр менеджера Cake\Event\EventManager для этого объекта.
Вы можете использовать этот экземпляр для регистрации новых слушателей или обратных вызовов на события объекта, или создавать собственные события и вызывать их по своему усмотрению.
Устарело
3.5.0 Используйте getEventManager()/setEventManager() вместо этого.Параметры
-
Cake\Event\EventManager$eventManageroptional null - менеджер событий для установки
Возвращает
Cake\Event\EventManagergetEventManager()source public
getEventManager( )
Возвращает экземпляр менеджера Cake\Event\EventManager для этого объекта.
Вы можете использовать этот экземпляр для регистрации новых слушателей или обратных вызовов на события объекта, или создавать собственные события и вызывать их по своему усмотрению.
Возвращает
Cake\Event\EventManagersetEventManager()source public
setEventManager( Cake\Event\EventManager $eventManager )
Возвращает менеджер Cake\Event\EventManager для данного объекта.
Вы можете использовать этот экземпляр для регистрации новых слушателей или обратных вызовов событий объекта, или для создания собственных событий и их запуска.
Параметры
-
Cake\Event\EventManager$eventManager - устанавливаемый eventManager
Возвращаемое значение
$this
Магические методы, унаследованные от Cake\Event\EventDispatcherInterface
getEventManager() |
Подробное описание свойств
© 2005–2018 The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/3.5/class-Cake.ORM.BehaviorRegistry.html