Spec-Zone.ru › CakePHP 4.3

Класс BehaviorRegistry

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

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

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

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

  • $_eventClass protected
    string

    Изначальное имя класса для новых объектов событий.

  • $_eventManager protected
    Cake\Event\EventManagerInterface|null

    Экземпляр Cake\Event\EventManager, который используется этим объектом для отправки внутренних событий.

  • $_finderMap protected
    array

    Сопоставления методов поиска.

  • $_loaded protected
    array<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

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

END_OF_DOCUMENT_MARKER

Подробное описание методов

__construct() public

__construct(Cake\ORM\Table|null $table = null)

Конструктор

Параметры

Cake\ORM\Table|null $table необязательно

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

__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 необязательно

Аргументы, с которыми вы хотите вызвать метод.

Возвращает

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|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 необязательно

Любое значение, которое вы хотите передать с этим событием, чтобы его могли прочитать слушатели.

object|null $subject необязательно

Объект, к которому относится это событие ($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

$_loaded protected

Карта загруженных объектов.

Тип

array<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.3/class-Cake.ORM.BehaviorRegistry.html

Spec-Zone.ru

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