Класс 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Исключение
Exceptioncount() public
count(): int
Возвращает количество загруженных объектов.
Возвращает
intget() public
get(string $name): object
Получить загруженный экземпляр объекта.
Параметры
-
string$name Имя объекта.
Возвращает
objectИсключение
RuntimeExceptionЕсли не загружен или не найден.
getIterator() public
getIterator(): Traversable
Возвращает итератор массива.
Возвращает
Traversablehas() public
has(string $name): bool
Проверить, загружен ли данный объект.
Параметры
-
string$name Имя объекта для проверки.
Возвращает
boolload() 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
Очистить загруженные экземпляры в реестре.
Если подкласс реестра имеет менеджер событий, объекты также будут отделены от событий.
Возвращает
$thisset() public
set(string $name, object $object): $this
Непосредственно установить объект в реестр по имени.
Если этот набор реализует события, переданный объект будет прикреплен к менеджеру событий
Параметры
-
string$name Имя объекта для установки в реестре.
-
object$object экземпляр для хранения в реестре
Возвращает
$thisunload() 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.3/class-Cake.Core.ObjectRegistry.html