Класс ObjectRegistry
Выступает в роли реестра/фабрики для объектов.
Предоставляет функциональность реестра и фабрики для типов объектов. Используется в качестве суперкласса для различных функций повторного использования на основе композиции в CakePHP.
Каждый подкласс должен реализовать различные абстрактные методы для завершения метода шаблона load().
ObjectRegistry поддерживает EventManager, но каждый расширяющий класс должен использовать \Cake\Event\EventDispatcherTrait для подключения и отключения при установке и привязке
- Cake\Core\ObjectRegistry реализует Countable, IteratorAggregate
Прямые подклассы
- Cake\Cache\CacheRegistry
- Cake\Console\HelperRegistry
- Cake\Console\TaskRegistry
- Cake\Controller\ComponentRegistry
- Cake\Datasource\ConnectionRegistry
- Cake\Log\LogEngineRegistry
- Cake\ORM\BehaviorRegistry
- Cake\View\HelperRegistry
Пространство имен: Cake\Core
См.:
Cake\Controller\ComponentRegistryСм.:
Cake\View\HelperRegistryСм.:
Cake\Console\TaskRegistryРасположение: Core/ObjectRegistry.php
Краткое описание свойств
-
$_loadedprotectedКарта загруженных объектов.object[]
Краткое описание методов
- __debugInfo() publicСвойства объекта для отладки.
- __get() publicПредоставление публичного чтения загруженных объектов
- __isset() publicПредоставление доступа isset к _loaded
- __set() publicУстанавливает объект.
- __unset() publicУдаляет объект.
- _checkDuplicate() protectedПроверка на дублирование загрузки объектов.
- Создание экземпляра заданного класса.
- Должен разрешать имя класса для заданного типа объекта.
- Выбрасывание исключения, когда отсутствует запрашиваемое имя объекта.
- count() publicВозвращает количество загруженных объектов.
- get() publicПолучить экземпляр загруженного объекта.
- getIterator() publicВозвращает итератор массива.
- has() publicПроверка загрузки заданного объекта.
- load() publicЗагрузка/создание экземпляра объекта.
- loaded() publicПолучить список загруженных объектов.
- normalizeArray() public
Нормализует массив объектов, создаёт массив, что облегчает ленивую загрузку
- reset() publicОчистить загруженные экземпляры в реестре.
- set() publicУстановить объект непосредственно в реестре по имени.
- unload() publicУдалить объект из реестра.
Подробное описание методов
__get()source public
__get( string $name )
Предоставление публичного чтения загруженных объектов
Параметры
- строка
$name - Имя свойства для чтения
Возвращает
смешанный тип__isset()source public
__isset( string $name )
Предоставление доступа isset к _loaded
Параметры
- строка
$name - Имя проверяемого объекта.
Возвращает
логический тип__set()source public
__set( string $name , mixed $object )
Устанавливает объект.
Параметры
- строка
$name - Имя свойства для установки.
- смешанный тип
$object - Объект для установки.
__unset()source public
__unset( string $name )
Удаляет объект.
Параметры
- строка
$name - Имя свойства для удаления.
_checkDuplicate()source protected
_checkDuplicate( string $name , array $config )
Проверка на дублирование загрузки объектов.
Если загружается дубликат с разной конфигурацией, это плохо и будет вызвано исключение.
Вызывается исключение, так как замена объекта не обновит никакие ссылки, которые могут иметь другие объекты. Кроме того, простое обновление конфигурации во время выполнения не является хорошим вариантом, так как мы можем пропустить важный логику конструктора, зависящую от конфигурации.
Параметры
- строка
$name - Имя псевдонима в реестре.
- массив
$config - Данные конфигурации для нового экземпляра.
Исключение
RuntimeExceptionКогда обнаружен дубликат.
_create()source abstract protected
_create( string $class , string $alias , array $config )
Создание экземпляра заданного класса.
Этот метод должен выполнить создание и другие необходимые действия по инициализации.
Параметры
- строка
$class - Класс для создания.
- строка
$alias - Псевдоним объекта.
- массив
$config - Параметры конфигурации для создания
Возвращает
смешанный тип_resolveClassName()source abstract protected
_resolveClassName( string $class )
Должен разрешать имя класса для заданного типа объекта.
Параметры
- строка
$class - Класс для разрешения.
Возвращает
строка/логический типРазрешенное имя или false в случае неудачи.
_throwMissingClassError()source abstract protected
_throwMissingClassError( string $class , string $plugin )
Выбрасывание исключения, когда отсутствует запрашиваемое имя объекта.
Параметры
- строка
$class - Класс, отсутствующий.
- строка
$plugin - Плагин, $class которого отсутствует.
Исключение
Исключениеcount()source public
count( )
Возвращает количество загруженных объектов.
Возвращает
целое числоРеализация
Countable::count() get()source public
get( string $name )
Получить загруженный экземпляр объекта.
Параметры
- строка
$name - Имя объекта.
Возвращает
object|nullЭкземпляр объекта, если загружен, иначе null.
getIterator()source public
getIterator( )
Возвращает итератор массива.
Возвращает
ArrayIteratorРеализация
IteratorAggregate::getIterator() has()source public
has( string $name )
Проверить, загружен ли указанный объект.
Параметры
- строка
$name - Имя объекта для проверки.
Возвращает
booleanTrue, если объект загружен, иначе false.
load()source public
load( string $objectName , array $config = [] )
Загружает/создаёт экземпляр объекта.
Вернёт экземпляр из реестра, если он уже существует. Если подкласс поддерживает события, вы можете использовать $config['enabled'] = false для исключения созданных объектов из регистрации событий.
Например, используя Cake\Controller\Controller::$components. Вы можете задать псевдоним объекта, установив ключ 'className', например:
public $components = [
'Email' => [
'className' => '\App\Controller\Component\AliasedEmailComponent'
];
]; Все вызовы к компоненту Email будут использовать AliasedEmail вместо этого.
Параметры
- строка
$objectName - Имя/класс объекта для загрузки.
- массив
$configнеобязательно [] - Дополнительные настройки для использования при загрузке объекта.
Возвращает
mixedИсключения
ExceptionЕсли класс не найден.
loaded()source public
loaded( )
Получить список загруженных объектов.
Возвращает
массивСписок имён объектов.
normalizeArray()source public
normalizeArray( array $objects )
Нормализует массив объектов, создаёт массив, который упрощает ленивую загрузку
Параметры
- массив
$objects - Массив дочерних объектов для нормализации.
Возвращает
массивМассив нормализованных объектов.
reset()source public
reset( )
Очистить загруженные экземпляры в реестре.
Если подкласс реестра имеет менеджер событий, объекты также будут отсоединены от событий.
Возвращает
$this
set()source public
set( string $objectName , object $object )
Непосредственно установить объект в реестр по имени.
Если этот набор реализует события, переданный объект будет прикреплён к менеджеру событий
Параметры
- строка
$objectName - Имя объекта для установки в реестре.
- объект
$object - экземпляр для хранения в реестре
Возвращает
$this
unload()source public
unload( string $objectName )
Удалить объект из реестра.
Если у этого реестра есть менеджер событий, объект также будет отсоединён от любых событий.
Параметры
- строка
$objectName - Имя объекта для удаления из реестра.
Возвращает
$this
Подробное описание свойств
© 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/3.6/class-Cake.Core.ObjectRegistry.html