Spec-Zone.ru › CakePHP 4.2

Класс ComponentRegistry

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

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

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

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

  • $_Controller protected
    Cake\Controller\Controller|null

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

  • $_eventClass protected
    string

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

  • $_eventManager protected
    Cake\Event\EventManagerInterface|null

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

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

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

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

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

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

Параметры

string|object $class

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

string $alias

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

array $config

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

Возвращает

Cake\Controller\Component

_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\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 optional

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

object|null $subject optional

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

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

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

Возвращает

$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

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

Тип

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.2/class-Cake.Controller.ComponentRegistry.html

Spec-Zone.ru

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