Класс 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 [] - Дополнительные настройки для загрузки объекта.
Возвращает
mixedИсключения
ExceptionЕсли класс не найден.
loaded()source public
loaded( )
Получение списка загруженных объектов.
Возвращает
string[]Список имён объектов.
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 deprecated
eventManager( Cake\Event\EventManager $eventManager = null )
Возвращает экземпляр менеджера Cake\Event\EventManager для этого объекта.
Вы можете использовать этот экземпляр для регистрации новых слушателей или обратных вызовов к событиям объекта, или создавать свои собственные события и вызывать их по своему усмотрению.
Устарело
3.5.0 Используйте getEventManager()/setEventManager() вместо этого.Параметры
-
Cake\Event\EventManager$eventManageroptional null - устанавливаемый eventManager
Возвращает
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 - устанавливаемый менеджер событий
Возвращает
$this
Магические методы, унаследованные от Cake\Event\EventDispatcherInterface
getEventManager() |
Подробное описание свойств
© 2005–present 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.7/class-Cake.ORM.BehaviorRegistry.html