Класс BehaviorRegistry
BehaviorRegistry используется в качестве реестра загруженных поведений и обрабатывает загрузку и создание объектов поведения.
Этот класс также предоставляет методы для проверки и отправки методов поведения.
Краткое описание свойств
- $_eventClass protected
stringИзначальное имя класса для новых объектов событий.
- $_eventManager protected
Cake\Event\EventManagerInterface|nullЭкземпляр Cake\Event\EventManager, который используется этим объектом для отправки внутренних событий.
- $_finderMap protected
array<string, array>Сопоставления методов поиска.
- $_loaded protected
array<object>Карта загруженных объектов.
- $_methodMap protected
array<string, 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 optional Таблица, к которой прикреплен этот реестр.
__debugInfo() public
__debugInfo(): array<string, mixed>
Свойства объекта для удобной отладки.
Возвращает
array<string, mixed>__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<string, mixed> $config): void
Проверка на дублирование загрузки объекта.
Если загружается дубликат с другой конфигурацией, это плохо, и будет выброшено исключение.
Исключение вызывается, поскольку замена объекта не обновит ссылки, которые могут быть у других объектов. Кроме того, простое обновление конфигурации времени выполнения не является хорошим вариантом, поскольку мы можем пропустить важную логику конструктора, зависящую от конфигурации.
Параметры
-
string$name Имя псевдонима в реестре.
-
array<string, mixed>$config Данные конфигурации для нового экземпляра.
Возвращает
voidВыбрасывает
RuntimeExceptionКогда найден дубликат.
_create() protected
_create(object|string $class, string $alias, array<string, mixed> $config): Cake\ORM\Behavior
Создает экземпляр поведения.
Часть шаблона метода для Cake\Core\ObjectRegistry::load() Включенные поведения будут зарегистрированы в менеджере событий.
Параметры
-
object|string$class Отсутствующий класс.
-
string$alias Псевдоним объекта.
-
array<string, mixed>$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 optional Аргументы, с которыми вы хотите вызвать метод.
Возвращает
mixedВыбрасывает
BadMethodCallExceptionКогда метод неизвестен.
callFinder() public
callFinder(string $type, array $args = []): Cake\ORM\Query
Вызывает средство поиска в поведении.
Параметры
-
string$type Вызываемый тип средства поиска.
-
array$args optional Аргументы, с которыми вы хотите вызвать метод.
Возвращает
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 optional Любое значение, которое вы хотите передать с этим событием, чтобы оно могло быть прочитано слушателями.
-
object|null$subject optional Объект, к которому применяется это событие (по умолчанию $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<string, mixed> $config = []): mixed
Загружает/создаёт экземпляр объекта.
Вернёт экземпляр из реестра, если он уже существует. Если подкласс поддерживает события, можно использовать $config['enabled'] = false для исключения созданных объектов из регистрации на события.
В качестве примера, используя {@link \Cake\Controller\Component::$components}. Можно задать псевдоним объекта, установив ключ 'className', например:
protected $components = [
'Email' => [
'className' => 'App\Controller\Component\AliasedEmailComponent'
];
]; Все вызовы к компоненту Email будут использовать AliasedEmail вместо.
Параметры
-
string$name Имя/класс объекта для загрузки.
-
array<string, mixed>$config optional Дополнительные настройки для загрузки объекта.
Возвращает
mixedИсключения
ExceptionЕсли класс не найден.
loaded() public
loaded(): array<string>
Получить список загруженных объектов.
Возвращает
array<string>normalizeArray() public
normalizeArray(array $objects): array<string, array>
Нормализует массив объектов, создаёт массив, который упрощает ленивую загрузку
Параметры
-
array$objects Массив дочерних объектов для нормализации.
Возвращает
array<string, 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 устанавливаемый 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<string, array>$_loaded protected
Карта загруженных объектов.
Тип
array<object>$_methodMap protected
Сопоставления методов.
Тип
array<string, 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.4/class-Cake.ORM.BehaviorRegistry.html