Класс 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 )
Предоставляет общедоступный доступ для чтения к загруженным объектам
Параметры
- string
$name - Имя свойства для чтения
Возвращает
mixed__isset()source public
__isset( string $name )
Обеспечивает доступ isset к _loaded
Параметры
- string
$name - Имя проверяемого объекта.
Возвращает
boolean__set()source public
__set( string $name , mixed $object )
Устанавливает объект.
Параметры
- string
$name - Имя свойства для установки.
- mixed
$object - Объект для установки.
__unset()source public
__unset( string $name )
Удаляет объект.
Параметры
- string
$name - Имя свойства для удаления.
_checkDuplicate()source protected
_checkDuplicate( string $name , array $config )
Проверка на дублирование загрузки объекта.
Если загружается дубликат с другой конфигурацией, это ошибка, и будет выброшено исключение.
Исключение выбрасывается, так как замена объекта не обновит ссылки, которые могут иметь другие объекты. Кроме того, простое обновление конфигурации в ходе выполнения не является хорошим вариантом, так как мы можем пропустить важную логику конструктора, зависящую от конфигурации.
Параметры
- string
$name - Имя псевдонима в реестре.
- array
$config - Данные конфигурации для нового экземпляра.
Исключения
RuntimeExceptionПри обнаружении дубликата.
_create()source abstract protected
_create( string $class , string $alias , array $config )
Создать экземпляр заданного класса.
Этот метод должен выполнить построение и любую другую логику инициализации, необходимую для объекта.
Параметры
- string
$class - Класс для построения.
- string
$alias - Псевдоним объекта.
- array
$config - Параметры конфигурации для построения
Возвращает
mixed_resolveClassName()source abstract protected
_resolveClassName( string $class )
Должен разрешить имя класса для заданного типа объекта.
Параметры
- string
$class - Класс для разрешения.
Возвращает
string|booleanРазрешенное имя или false при неудаче.
_throwMissingClassError()source abstract protected
_throwMissingClassError( string $class , string $plugin )
Выбрасывает исключение, когда запрашиваемое имя объекта отсутствует.
Параметры
- string
$class - Отсутствующий класс.
- string
$plugin - Плагин, в котором отсутствует класс $class.
Исключения
Exceptioncount()source public
count( )
Возвращает количество загруженных объектов.
Возвращает
integerРеализация
Countable::count() get()source public
get( string $name )
Получить загруженный экземпляр объекта.
Параметры
- string
$name - Имя объекта.
Возвращает
object|nullЭкземпляр объекта, если загружен, иначе null.
getIterator()source public
getIterator( )
Возвращает итератор массива.
Возвращает
ArrayIteratorРеализация
IteratorAggregate::getIterator() has()source public
has( string $name )
Проверить, загружен ли данный объект.
Параметры
- string
$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 вместо него.
Параметры
- string
$objectName - Имя/класс объекта для загрузки.
- array
$configoptional [] - Дополнительные параметры для загрузки объекта.
Возвращает
mixedloaded()source public
loaded( )
Получить список загруженных объектов.
Возвращает
arrayСписок имён объектов.
normalizeArray()source public
normalizeArray( array $objects )
Нормализует массив объектов, создаёт массив, упрощающий ленивую загрузку
Параметры
- array
$objects - Массив дочерних объектов для нормализации.
Возвращает
arrayМассив нормализованных объектов.
reset()source public
reset( )
Очистить загруженные экземпляры в реестре.
Если подкласс реестра имеет менеджер событий, объекты также будут отсоединены от событий.
Возвращает
$this
set()source public
set( string $objectName , object $object )
Непосредственно установить объект в реестр по имени.
Если данная коллекция реализует события, переданный объект будет прикреплён к менеджеру событий
Параметры
- string
$objectName - Имя объекта для установки в реестр.
- object
$object - экземпляр для хранения в реестре
Возвращает
$this
unload()source public
unload( string $objectName )
Удалить объект из реестра.
Если у этого реестра есть менеджер событий, объект также будет отсоединён от любых событий.
Параметры
- string
$objectName - Имя объекта для удаления из реестра.
Возвращает
$this
Подробное описание свойств
© 2005–2017 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.4/class-Cake.Core.ObjectRegistry.html