Spec-Zone.ru › CakePHP 4.4

Класс ComponentRegistry

ComponentRegistry — это реестр загруженных компонентов

Обрабатывает загрузку, создание и привязку событий для объектов класса компонента.

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

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

  • $_Controller protected
    Cake\Controller\Controller|null

    Контроллер, с которым была инициализирована эта коллекция.

  • $_eventClass protected
    string

    Имя класса по умолчанию для новых объектов события.

  • $_eventManager protected
    Cake\Event\EventManagerInterface|null

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

  • $_loaded protected
    array<object>

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

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

  • __construct() public

    Конструктор.

  • __debugInfo() public

    Свойства объекта для отладки.

  • __get() public

    Предоставляет публичный доступ для чтения к загруженным объектам

  • __isset() public

    Предоставляет доступ isset к _loaded

  • __set() public

    Устанавливает объект.

  • __unset() public

    Удаляет объект.

  • _checkDuplicate() protected

    Проверка на дублирование загрузки объектов.

  • _create() protected

    Создание экземпляра компонента.

  • _resolveClassName() protected

    Разрешение имени класса компонента.

  • _throwMissingClassError() protected

    Выбрасывает исключение, если компонент отсутствует.

  • count() public

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

  • dispatchEvent() public

    Обёртка для создания и отправки событий.

  • get() public

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

  • getController() public

    Получение контроллера, связанного с коллекцией.

  • getEventManager() public

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

  • getIterator() public

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

  • has() public

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

  • load() public

    Загрузка/создание экземпляра объекта.

  • loaded() public

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

  • normalizeArray() public

    Нормализует массив объектов, создаёт массив, который упрощает ленивую загрузку

  • reset() public

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

  • set() public

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

  • setController() public

    Установка контроллера, связанного с коллекцией.

  • setEventManager() public

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

  • unload() public

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

END_OF_DOCUMENT_MARKER

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

__construct() public

__construct(Cake\Controller\Controller|null $controller = null)

Конструктор.

Параметры

Cake\Controller\Controller|null $controller необязательно

Экземпляр контроллера.

__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\Controller\Component

Создание экземпляра компонента.

Часть шаблонного метода для {@link \Cake\Core\ObjectRegistry::load()} Включенные компоненты будут зарегистрированы в менеджере событий.

Параметры

object|string $class

Имя класса для создания.

string $alias

Псевдоним компонента.

array<string, mixed> $config

Массив конфигурации для компонента.

Возвращает

Cake\Controller\Component

_resolveClassName() protected

_resolveClassName(string $class): string|null

Разрешение имени класса компонента.

Часть шаблонного метода для {@link \Cake\Core\ObjectRegistry::load()}.

Параметры

string $class

Частичное имя класса для разрешения.

Возвращает

string|null

_throwMissingClassError() protected

_throwMissingClassError(string $class, string|null $plugin): void

Выбрасывает исключение, когда компонент отсутствует.

Часть шаблонного метода для {@link \Cake\Core\ObjectRegistry::load()} и {@link \Cake\Core\ObjectRegistry::unload()}

Параметры

string $class

Имя класса, которого нет.

string|null $plugin

Плагин, в котором отсутствует компонент.

Возвращает

void

Исключение

Cake\Controller\Exception\MissingComponentException

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
Если объект не загружен или не найден.

getController() public

getController(): Cake\Controller\Controller

Получение контроллера, связанного с коллекцией.

Возвращает

Cake\Controller\Controller

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

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

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

Возвращает

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

setController() public

setController(Cake\Controller\Controller $controller): $this

Установить контроллер, связанный с коллекцией.

Параметры

Cake\Controller\Controller $controller

Экземпляр контроллера.

Возвращает

$this

setEventManager() public

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

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

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

Параметры

Cake\Event\EventManagerInterface $eventManager

менеджер событий для установки

Возвращает

$this

unload() public

unload(string $name): $this

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

Если у этого реестра есть менеджер событий, объект также будет отсоединён от всех событий.

Параметры

string $name

Имя объекта, который нужно удалить из реестра.

Возвращает

$this

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

$_Controller protected

Контроллер, с которым была инициализирована эта коллекция.

Тип

Cake\Controller\Controller|null

$_eventClass protected

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

Тип

string

$_eventManager protected

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

Тип

Cake\Event\EventManagerInterface|null

$_loaded protected

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

Тип

array<object>

© 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.Controller.ComponentRegistry.html

Spec-Zone.ru

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