Spec-Zone.ru › CakePHP 4.4

Класс ObjectRegistry

Выступает в роли реестра/фабрики объектов.

Обеспечивает функциональность реестра и фабрики для типов объектов. Используется в качестве суперкласса для различных функций повторного использования на основе композиции в CakePHP.

Каждый подкласс должен реализовать различные абстрактные методы для завершения шаблона метода load().

ObjectRegistry поддерживает EventManager, но каждый расширяющий класс должен использовать \Cake\Event\EventDispatcherTrait для присоединения и отсоединения при установке и связывании

Абстрактный
Пространство имен: Cake\Core
См.: \Cake\Controller\ComponentRegistry
См.: \Cake\View\HelperRegistry
См.: \Cake\Console\TaskRegistry

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

  • $_loaded protected
    array<object>

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

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

  • __debugInfo() public

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

  • __get() public

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

  • __isset() public

    Предоставление доступа isset к _loaded.

  • __set() public

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

  • __unset() public

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

  • _checkDuplicate() protected

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

  • _create() abstract protected

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

  • _resolveClassName() abstract protected

    Должен разрешать имя класса для заданного типа объекта.

  • _throwMissingClassError() abstract protected

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

  • count() public

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

  • get() public

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

  • getIterator() public

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

  • has() public

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

  • load() public

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

  • loaded() public

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

  • normalizeArray() public

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

  • reset() public

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

  • set() public

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

  • unload() public

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

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

__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() abstract protected

_create(object|string $class, string $alias, array<string, mixed> $config): object

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

Этот метод должен создать и выполнить любую другую необходимую логику инициализации.

Параметры

object|string $class

Класс для создания.

string $alias

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

array<string, mixed> $config

Настройки конфигурации для создания

Возвращает

object

_resolveClassName() abstract protected

_resolveClassName(string $class): string|null

Должен разрешить имя класса для заданного типа объекта.

Параметры

string $class

Класс для разрешения.

Возвращает

string|null

_throwMissingClassError() abstract protected

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

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

Параметры

string $class

Отсутствующий класс.

string|null $plugin

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

Возвращает

void

Исключение

Exception

count() public

count(): int

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

Возвращает

int

get() public

get(string $name): object

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

Параметры

string $name

Имя объекта.

Возвращает

object

Исключение

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

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 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

unload() public

unload(string $name): $this

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

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

Параметры

string $name

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

Возвращает

$this

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

$_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.Core.ObjectRegistry.html

Spec-Zone.ru

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