Класс BehaviorRegistry
BehaviorRegistry используется в качестве реестра загруженных поведений и обрабатывает загрузку и создание объектов поведения.
Этот класс также предоставляет методы для проверки и отправки методов поведения.
Краткое описание свойств
- $_eventClass protected
stringИмя класса по умолчанию для новых объектов события.
- $_eventManager protected
Cake\Event\EventManagerInterface|nullЭкземпляр Cake\Event\EventManager, который используется этим объектом для отправки внутренних событий.
- $_finderMap protected
arrayСопоставления методов поиска.
- $_loaded protected
object[]Карта загруженных объектов.
- $_methodMap protected
arrayСопоставления методов.
- $_table protected
Cake\ORM\TableТаблица, использующая этот реестр.
Краткое описание методов
-
__construct() public
Конструктор
-
__debugInfo() public
Свойства объекта, дружественные для отладки.
-
__get() public
Обеспечение публичного чтения загруженных объектов.
-
__isset() public
Обеспечение доступа isset к _loaded
-
__set() public
Устанавливает объект.
-
__unset() public
Удаляет объект.
-
_checkDuplicate() protected
Проверка на дублирование загрузки объектов.
-
_create() protected
Создание экземпляра поведения.
-
_getMethods() protected
Получение методов поведения и проверка отсутствия дубликатов.
-
_resolveClassName() protected
Разрешение имени класса поведения.
-
_throwMissingClassError() protected
Выбрасывает исключение, если поведение отсутствует.
-
call() public
Вызов метода поведения.
-
callFinder() public
Вызов поиска на поведении.
-
className() public static
Разрешение имени класса поведения.
-
count() public
Возвращает количество загруженных объектов.
-
dispatchEvent() public
Обёртка для создания и отправки событий.
-
get() public
Получение экземпляра загруженного объекта.
-
getEventManager() public
Возвращает экземпляр менеджера Cake\Event\EventManager для этого объекта.
-
getIterator() public
Возвращает итератор массива.
-
has() public
Проверка наличия заданного объекта.
-
hasFinder() public
Проверка, реализует ли какое-либо загруженное поведение указанный поиск.
-
hasMethod() public
Проверка, реализует ли какое-либо загруженное поведение метод.
-
load() public
Загрузка/создание экземпляра объекта.
-
loaded() public
Получение списка загруженных объектов.
-
normalizeArray() public
Нормализация массива объектов, создание массива, который упрощает ленивую загрузку.
-
reset() public
Очистка загруженных экземпляров в реестре.
-
set() public
Установка объекта напрямую в реестр по имени.
-
setEventManager() public
Возвращает экземпляр Cake\Event\EventManagerInterface для этого объекта.
-
setTable() public
Прикрепляет экземпляр таблицы к этому реестру.
-
unload() public
Удаление объекта из реестра.
Подробное описание методов
__construct() public
__construct(Cake\ORM\Table|null $table = null)
Конструктор
Параметры
-
Cake\ORM\Table|null$table необязательно Таблица, к которой прикреплён этот реестр.
__debugInfo() public
__debugInfo(): array
Свойства объекта для отладки.
Возвращает
array__get() public
__get(string $name): object|null
Предоставление публичного чтения загруженных объектов
Параметры
-
string$name Имя свойства для чтения
Возвращает
object|null__isset() public
__isset(string $name): bool
Предоставление доступа isset к _loaded
Параметры
-
string$name Имя проверяемого объекта.
Возвращает
bool__set() public
__set(string $name, object $object): void
Устанавливает объект.
Параметры
-
string$name Имя свойства для установки.
-
object$object Устанавливаемый объект.
Возвращает
void__unset() public
__unset(string $name): void
Удаляет объект.
Параметры
-
string$name Имя свойства для удаления.
Возвращает
void_checkDuplicate() protected
_checkDuplicate(string $name, array $config): void
Проверка на дублирование загрузки объекта.
Если загружается дубликат с другим конфигурацией, это плохо, и будет выброшено исключение.
Выбрасывается исключение, так как замена объекта не обновит любые ссылки, которые другие объекты могут иметь. Кроме того, простое обновление конфигурации во время выполнения не является хорошим вариантом, так как мы можем пропустить важный логик конструктора, зависящей от конфигурации.
Параметры
-
string$name Имя псевдонима в реестре.
-
array$config Данные конфигурации для нового экземпляра.
Возвращает
voidИсключения
RuntimeExceptionПри обнаружении дубликата.
_create() protected
_create(string|object $class, string $alias, array $config): Cake\ORM\Behavior
Создание экземпляра поведения.
Часть шаблонного метода для Cake\Core\ObjectRegistry::load() Включённые поведения будут зарегистрированы в менеджере событий.
Параметры
-
string|object$class Имя класса, которого нет.
-
string$alias Псевдоним объекта.
-
array$config Массив конфигурации для использования поведения.
Возвращает
Cake\ORM\Behavior_getMethods() protected
_getMethods(Cake\ORM\Behavior $instance, string $class, string $alias): array
Получение методов поведения и обеспечение отсутствия дубликатов.
Используйте метод implementedEvents() для исключения методов обратного вызова. Методы, начинающиеся с _ будут игнорироваться, также как и методы, объявленные в Cake\ORM\Behavior
Параметры
-
Cake\ORM\Behavior$instance Поведение, для получения методов.
-
string$class Имя класса, которого нет.
-
string$alias Псевдоним объекта.
Возвращает
arrayИсключения
LogicExceptionпри подключении дублирующихся методов.
_resolveClassName() protected
_resolveClassName(string $class): string|null
Разрешение имени класса поведения.
Часть шаблонного метода для Cake\Core\ObjectRegistry::load()
Параметры
-
string$class Частичное имя класса для разрешения.
Возвращает
string|null_throwMissingClassError() protected
_throwMissingClassError(string $class, string|null $plugin): void
Выбрасывает исключение, когда поведение отсутствует.
Часть шаблонного метода для Cake\Core\ObjectRegistry::load() и Cake\Core\ObjectRegistry::unload()
Параметры
-
string$class Имя класса, которого нет.
-
string|null$plugin Плагин, в котором отсутствует поведение.
Возвращает
voidИсключения
Cake\ORM\Exception\MissingBehaviorExceptioncall() public
call(string $method, array $args = []): mixed
Вызов метода поведения.
Параметры
-
string$method Метод для вызова.
-
array$args необязательно Аргументы, с которыми вы хотите вызвать метод.
Возвращает
mixedИсключения
BadMethodCallExceptionЕсли метод неизвестен.
callFinder() public
callFinder(string $type, array $args = []): Cake\ORM\Query
Вызов поиска поведения.
Параметры
-
string$type Тип поиска для вызова.
-
array$args необязательно Аргументы, с которыми вы хотите вызвать метод.
Возвращает
Cake\ORM\QueryИсключения
BadMethodCallExceptionЕсли метод неизвестен.
className() public static
className(string $class): string|null
Разрешение имени класса поведения.
Параметры
-
string$class Частичное имя класса для разрешения.
Возвращает
string|nullcount() public
count(): int
Возвращает количество загруженных объектов.
Возвращает
intdispatchEvent() public
dispatchEvent(string $name, array|null $data = null, object|null $subject = null): Cake\Event\EventInterface
Обёртка для создания и отправки событий.
Возвращает отправленное событие.
Параметры
-
string$name Имя события.
-
array|null$data необязательно Любое значение, которое вы хотите передать с этим событием, чтобы его могли прочитать слушатели.
-
object|null$subject необязательно Объект, к которому относится это событие ($this по умолчанию).
Возвращает
Cake\Event\EventInterfaceget() public
get(string $name): object
Получение загруженного экземпляра объекта.
Параметры
-
string$name Имя объекта.
Возвращает
objectИсключения
RuntimeExceptionЕсли не загружен или не найден.
getEventManager() public
getEventManager(): Cake\Event\EventManagerInterface
Возвращает экземпляр менеджера событий Cake\Event\EventManager для этого объекта.
Вы можете использовать этот экземпляр, чтобы зарегистрировать новых слушателей или обратные вызовы для событий объекта, или создать собственные события и вызывать их по своему усмотрению.
Возвращает
Cake\Event\EventManagerInterfacegetIterator() public
getIterator(): Traversable
Возвращает итератор массива.
Возвращает
Traversablehas() public
has(string $name): bool
Проверить, загружен ли заданный объект.
Параметры
-
string$name Имя объекта для проверки.
Возвращает
boolhasFinder() public
hasFinder(string $method): bool
Проверить, реализует ли какой-либо загруженный метод указанный поиск.
Вернёт true, если какой-либо метод с выбранным именем является общедоступным.
Параметры
-
string$method Метод для проверки.
Возвращает
boolhasMethod() public
hasMethod(string $method): bool
Проверить, реализует ли какой-либо загруженный метод.
Вернёт true, если какой-либо метод с выбранным именем является общедоступным и не является методом поиска.
Параметры
-
string$method Метод для проверки.
Возвращает
boolload() public
load(string $name, array $config = []): mixed
Загружает/создаёт экземпляр объекта.
Вернёт экземпляр в реестре, если он уже существует. Если подкласс поддерживает события, вы можете использовать $config['enabled'] = false для исключения созданных объектов из регистрации для событий.
Пример Cake\Controller\Controller::$components. Вы можете переименовать объект, установив ключ 'className', например:
protected $components = [
'Email' => [
'className' => 'App\Controller\Component\AliasedEmailComponent'
];
]; Все вызовы компонента Email будут использовать AliasedEmail вместо.
Параметры
-
string$name Имя/класс объекта для загрузки.
-
array$config optional Дополнительные настройки для использования при загрузке объекта.
Возвращает
mixedИсключения
ExceptionЕсли класс не найден.
loaded() public
loaded(): string[]
Получить список загруженных объектов.
Возвращает
string[]normalizeArray() public
normalizeArray(array $objects): array[]
Нормализует массив объектов, создаёт массив, который упрощает ленивую загрузку.
Параметры
-
array$objects Массив дочерних объектов для нормализации.
Возвращает
array[]reset() public
reset(): $this
Очистить загруженные экземпляры в реестре.
Если подкласс реестра имеет менеджер событий, объекты также будут отделены от событий.
Возвращает
$thisset() public
set(string $name, object $object): $this
Непосредственно установить объект в реестр по имени.
Если эта коллекция реализует события, переданный объект будет присоединён к менеджеру событий
Параметры
-
string$name Имя объекта для установки в реестр.
-
object$object экземпляр для хранения в реестре
Возвращает
$thissetEventManager() public
setEventManager(Cake\Event\EventManagerInterface $eventManager): $this
Возвращает экземпляр Cake\Event\EventManagerInterface для этого объекта.
Вы можете использовать этот экземпляр для регистрации новых слушателей или обратных вызовов для событий объекта, или создать свои собственные события и запускать их по желанию.
Параметры
-
Cake\Event\EventManagerInterface$eventManager менеджер событий для установки
Возвращает
$thissetTable() public
setTable(Cake\ORM\Table $table): void
Присоединяет экземпляр таблицы к этому реестру.
Параметры
-
Cake\ORM\Table$table Таблица, к которой прикреплён этот реестр.
Возвращает
voidunload() public
unload(string $name): $this
Удалить объект из реестра.
Если в этом реестре есть менеджер событий, объект также будет отсоединён от всех событий.
Параметры
-
string$name Имя объекта для удаления из реестра.
Возвращает
$thisПодробное описание свойств
$_eventClass protected
Изначальное имя класса для новых объектов событий.
Тип
string$_eventManager protected
Экземпляр Cake\Event\EventManager, используемый этим объектом для отправки внутренних событий.
Тип
Cake\Event\EventManagerInterface|null$_finderMap protected
Сопоставления методов поиска.
Тип
array$_loaded protected
Карта загруженных объектов.
Тип
object[]$_methodMap protected
Сопоставления методов.
Тип
array$_table protected
Таблица, использующая этот реестр.
Тип
Cake\ORM\Table
© 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/4.2/class-Cake.ORM.BehaviorRegistry.html