Класс 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необязательно [] - Дополнительные настройки для загрузки объекта.
Возвращаемое значение
mixedloaded()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–2018 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.5/class-Cake.Core.ObjectRegistry.html