Spec-Zone.ru › CakePHP 4.4

Класс BehaviorRegistry

BehaviorRegistry используется в качестве реестра загруженных поведений и обрабатывает загрузку и создание объектов поведения.

Этот класс также предоставляет методы для проверки и отправки методов поведения.

Пространство имен: Cake\ORM

Краткое описание свойств

  • $_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

    Удаление объекта из реестра.

END_OF_DOCUMENT_MARKER

Краткое описание методов

__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\MissingBehaviorException

call() 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|null

count() public

count(): int

Возвращает количество загруженных объектов.

Возвращает

int

dispatchEvent() 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\EventInterface

get() public

get(string $name): object

Получить загруженный экземпляр объекта.

Параметры

string $name

Имя объекта.

Возвращает

object

Выбрасывает

RuntimeException
Если не загружено или не найдено.

getEventManager() public

getEventManager(): Cake\Event\EventManagerInterface

Возвращает экземпляр менеджера Cake\Event\EventManager для этого объекта.

Вы можете использовать этот экземпляр для регистрации любых новых слушателей или обратных вызовов к событиям объекта или для создания собственных событий и их запуска по желанию.

Возвращает

Cake\Event\EventManagerInterface

getIterator() public

getIterator(): Traversable

Возвращает итератор массива.

Возвращает

Traversable

has() public

has(string $name): bool

Проверить, загружен ли заданный объект.

Параметры

string $name

Имя объекта, который нужно проверить.

Возвращает

bool

hasFinder() public

hasFinder(string $method): bool

Проверить, реализует ли загруженное поведение указанный поиск.

Вернёт true, если какое-либо поведение предоставляет метод с указанным именем.

Параметры

string $method

Метод для проверки.

Возвращает

bool

hasMethod() public

hasMethod(string $method): bool

Проверить, реализует ли какое-либо загруженное поведение метод.

Вернёт true, если какое-либо поведение предоставляет общедоступный метод (не поиск) с указанным именем.

Параметры

string $method

Метод для проверки.

Возвращает

bool

load() 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

Очистить загруженные экземпляры в реестре.

Если подкласс реестра имеет менеджер событий, объекты также будут отключены от событий.

Возвращает

$this

set() public

set(string $name, object $object): $this

Непосредственно установить объект в реестр по имени.

Если эта коллекция реализует события, переданный объект будет добавлен в менеджер событий.

Параметры

string $name

Имя объекта для установки в реестре.

object $object

Экземпляр для хранения в реестре.

Возвращает

$this

setEventManager() public

setEventManager(Cake\Event\EventManagerInterface $eventManager): $this

Возвращает экземпляр Cake\Event\EventManagerInterface для данного объекта.

Можно использовать этот экземпляр для регистрации новых слушателей или обратных вызовов событий объекта, или создавать свои события и вызывать их по мере необходимости.

Параметры

Cake\Event\EventManagerInterface $eventManager

устанавливаемый eventManager

Возвращает

$this

setTable() public

setTable(Cake\ORM\Table $table): void

Прикрепляет экземпляр таблицы к этому реестру.

Параметры

Cake\ORM\Table $table

Таблица, к которой прикреплён этот реестр.

Возвращает

void

unload() 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API