Класс ObjectRegistry
Выступает в качестве реестра/фабрики для объектов.
Обеспечивает функциональность реестра и фабрики для типов объектов. Используется как базовый класс для различных функций повторного использования на основе композиции в CakePHP.
Каждый подкласс должен реализовать различные абстрактные методы для завершения метода шаблона load().
ObjectRegistry поддерживает EventManager, но каждый расширяющий класс должен использовать \Cake\Event\EventDispatcherTrait для присоединения и отсоединения при установке и привязке
Прямые подклассы
- 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Карта загруженных объектов.array
Краткое описание методов
- __debugInfo() publicСвойства объекта для отладки.
- __get() publicПредоставление публичного доступа для чтения к загруженным объектам
- __isset() publicПредоставление доступа isset к _loaded
- _checkDuplicate() protectedПроверка на дублирование загрузки объектов.
- Создание экземпляра заданного класса.
- Должен разрешать имя класса для данного типа объекта.
- Выбрасывает исключение, когда отсутствует запрошенное имя объекта.
- get() 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_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|falseРазрешенное имя или false в случае неудачи.
_throwMissingClassError()source abstract protected
_throwMissingClassError( string $class , string $plugin )
Выбрасывает исключение, когда отсутствует запрошенное имя объекта.
Параметры
- string
$class - Отсутствующий класс.
- string
$plugin - Плагин, из которого отсутствует класс $class.
Выбрасывает
Exceptionget()source public
get( string $name )
Получение загруженного экземпляра объекта.
Параметры
- string
$name - Имя объекта.
Возвращает
object|nullЭкземпляр объекта, если загружен, иначе null.
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( )
Очистить загруженные экземпляры в реестре.
Если подкласс реестра имеет менеджер событий, объекты также будут отвязаны от событий.
set()source public
set( string $objectName , object $object )
Непосредственно установить объект в реестр по имени.
Если этот коллектив реализует события, переданный объект будет присоединён к менеджеру событий
Параметры
- string
$objectName - Имя объекта для установки в реестре.
- object
$object - экземпляр для хранения в реестре
unload()source public
unload( string $objectName )
Удалить объект из реестра.
Если в этом реестре есть менеджер событий, объект также будет отвязан от любых событий.
Параметры
- string
$objectName - Имя объекта для удаления из реестра.
Подробное описание свойств
© 2005–2016 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.
http://api.cakephp.org/3.2/class-Cake.Core.ObjectRegistry.html