Spec-Zone.ru › CakePHP 4.2

Класс ObjectRegistry

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

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

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

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

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

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

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

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

Возвращает

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

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

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

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

Параметры

string|object $class

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

string $alias

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

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

unload() public

unload(string $name): $this

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

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

Параметры

string $name

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

Возвращает

$this

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

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

Spec-Zone.ru

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