Класс 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
Подробное описание методов
__getsource public
__get( string $name )
Предоставление публичного чтения загруженных объектов
Параметры
- строка
$name - Имя свойства для чтения
Возвращает
mixedсмешанный тип
__issetsource public
__isset( string $name )
Предоставление доступа isset к _loaded
Параметры
- строка
$name - Имя объекта, который проверяется.
Возвращает
booleanлогическое значение
_checkDuplicatesource protected
_checkDuplicate( string $name , array $config )
Проверка на дублирование загрузки объектов.
Если загружается дубликат с другой конфигурацией, это ошибка, и будет выброшено исключение.
Исключение выбрасывается, так как замена объекта не обновит никакие ссылки, которые могут иметь другие объекты. Кроме того, простое обновление конфигурации во время выполнения не является хорошим вариантом, так как мы можем пропустить важную логику конструктора, зависящую от конфигурации.
Параметры
- строка
$name - Имя псевдонима в реестре.
- массив
$config - Данные конфигурации для нового экземпляра.
Выбрасывает
RuntimeExceptionПри обнаружении дубликата.
_createsource абстрактный protected
_create( string $class , string $alias , array $config )
Создание экземпляра заданного класса.
Этот метод должен создавать и выполнять любую другую необходимую логику инициализации.
Параметры
- строка
$class - Класс для построения.
- строка
$alias - Псевдоним объекта.
- массив
$config - Параметры конфигурации для создания
Возвращает
mixedсмешанный тип
_resolveClassNamesource абстрактный protected
_resolveClassName( string $class )
Должен разрешить имя класса для заданного типа объекта.
Параметры
- строка
$class - Класс для разрешения.
Возвращает
string|falseРазрешенное имя или false в случае неудачи.
_throwMissingClassErrorsource абстрактный protected
_throwMissingClassError( string $class , string $plugin )
Выбросить исключение, когда запрошенного имени объекта нет.
Параметры
- строка
$class - Отсутствующий класс.
- строка
$plugin - Плагин, в котором отсутствует класс $class.
Выбрасывает
Exception\Исключение
getsource public
get( string $name )
Получение экземпляра загруженного объекта.
Параметры
- строка
$name - Имя объекта.
Возвращает
object|nullЭкземпляр объекта, если загружен, иначе null.
hassource public
has( string $name )
Проверка, загружен ли заданный объект.
Параметры
- строка
$name - Имя объекта для проверки.
Возвращает
booleanTrue, если объект загружен, иначе false.
loadsource 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смешанный тип
loadedsource public
loaded( )
Получить список загруженных объектов.
Возвращает
arrayСписок имён объектов.
normalizeArraysource public
normalizeArray( array $objects )
Нормализует массив объектов, создаёт массив, который облегчает ленивую загрузку
Параметры
- массив
$objects - Массив дочерних объектов для нормализации.
Возвращает
arrayМассив нормализованных объектов.
resetsource public
reset( )
Очистить загруженные экземпляры в реестре.
Если подкласс реестра имеет диспетчер событий, объекты также будут отключены от событий.
setsource public
set( string $objectName , object $object )
Непосредственно установить объект в реестр по имени.
Если этот набор реализует события, переданный объект будет присоединён к диспетчеру событий
Параметры
- строка
$objectName - Имя объекта для установки в реестр.
- объект
$object - экземпляр для хранения в реестре
unloadsource public
unload( string $objectName )
Удалить объект из реестра.
Если этот реестр имеет диспетчер событий, объект также будет отключён от всех событий.
Параметры
- строка
$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.1/class-Cake.Core.ObjectRegistry.html