Класс ComponentRegistry
ComponentRegistry — это реестр загруженных компонентов
Обрабатывает загрузку, создание и привязку событий для объектов класса компонентов.
- Cake\Core\ObjectRegistry
-
Cake\Controller\ComponentRegistry реализует Cake\Event\EventDispatcherInterface использует Cake\Event\EventDispatcherTrait
Подробное описание методов
__constructsource public
__construct( Cake\Controller\Controller $controller null )
Конструктор.
Параметры
-
Cake\Controller\Controller$controllerнеобязательный null - Экземпляр контроллера.
_createsource protected
_create( string $class , string $alias , array $config )
Создать экземпляр компонента.
Часть шаблона метода для Cake\Core\ObjectRegistry::load() Включённые компоненты будут зарегистрированы в диспетчере событий.
Параметры
- string
$class - Имя класса для создания.
- string
$alias - Псевдоним компонента.
- array
$config - Массив конфигурации для компонента.
Возвращает
Cake\Controller\ComponentКласс созданного компонента.
_resolveClassNamesource protected
_resolveClassName( string $class )
Разрешить имя класса компонента.
Часть шаблона метода для Cake\Core\ObjectRegistry::load()
Параметры
- string
$class - Частичное имя класса для разрешения.
Возвращает
string|falseЛибо правильное имя класса, либо false.
_throwMissingClassErrorsource protected
_throwMissingClassError( string $class , string $plugin )
Выбрасывает исключение, когда компонент отсутствует.
Часть шаблона метода для Cake\Core\ObjectRegistry::load()
Параметры
- string
$class - Отсутствующий класс.
- string
$plugin - Плагин, в котором отсутствует компонент.
Выбрасывает
Cake\Controller\Exception\MissingComponentException\Cake\Controller\Exception\MissingComponentException
getControllersource public
getController( )
Получить контроллер, связанный с коллекцией.
Возвращает
Cake\Controller\ControllerЭкземпляр контроллера
setControllersource public
setController( Cake\Controller\Controller $controller )
Установить контроллер, связанный с коллекцией.
Параметры
-
Cake\Controller\Controller$controller - Экземпляр контроллера.
Методы, унаследованные от Cake\Core\ObjectRegistry
__debugInfosource public
__debugInfo( )
Свойства объекта, удобные для отладки.
Возвращает
arrayмассив
__getsource public
__get( string $name )
Обеспечить публичный доступ для чтения к загруженным объектам
Параметры
- string
$name - Имя свойства для чтения
Возвращает
mixedсмешанный тип
__issetsource public
__isset( string $name )
Обеспечить доступ isset к _loaded
Параметры
- string
$name - Имя проверяемого объекта.
Возвращает
booleanbool
_checkDuplicatesource protected
_checkDuplicate( string $name , array $config )
Проверить на дублирование загрузки объекта.
Если загружается дубликат с другой конфигурацией, это плохо, и будет вызвано исключение.
Исключение вызывается, так как замена объекта не обновит никакие ссылки, которые могут быть у других объектов. Кроме того, простое обновление конфигурации во время выполнения не является хорошим вариантом, так как мы можем пропустить важную логику конструктора, зависящую от конфигурации.
Параметры
- string
$name - Имя псевдонима в реестре.
- array
$config - Данные конфигурации для нового экземпляра.
Выбрасывает
RuntimeExceptionКогда дубликат найден.
getsource public
get( string $name )
Получить загруженный экземпляр объекта.
Параметры
- string
$name - Имя объекта.
Возвращает
object|nullЭкземпляр объекта, если он загружен, в противном случае null.
hassource public
has( string $name )
Проверить, загружен ли заданный объект.
Параметры
- string
$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 вместо.
Параметры
- string
$objectName - Имя/класс объекта для загрузки.
- array
$configнеобязательный [] - Дополнительные настройки для использования при загрузке объекта.
Возвращает
mixedсмешанный тип
loadedsource public
loaded( )
Получить список загруженных объектов.
Возвращает
arrayСписок имён объектов.
normalizeArraysource public
normalizeArray( array $objects )
Нормализует массив объектов, создаёт массив, который упрощает ленивую загрузку
Параметры
- array
$objects - Массив дочерних объектов для нормализации.
Возвращает
arrayМассив нормализованных объектов.
resetsource public
reset( )
Очистить загруженные экземпляры в реестре.
Если подкласс реестра имеет диспетчер событий, объекты также будут отделены от событий.
setsource public
set( string $objectName , object $object )
Непосредственно установить объект в реестр по имени.
Если эта коллекция реализует события, переданный объект будет присоединён к диспетчеру событий
Параметры
- string
$objectName - Имя объекта для установки в реестр.
- object
$object - экземпляр для хранения в реестре
unloadsource public
unload( string $objectName )
Удалить объект из реестра.
Если в этом реестре есть менеджер событий, объект также будет отделен от любых событий.
Параметры
- строка
$objectName - Имя объекта для удаления из реестра.
Методы, используемые из Cake\Event\EventDispatcherTrait
dispatchEventsource public
dispatchEvent( string $name , array|null $data null , object|null $subject null )
Обёртка для создания и отправки событий.
Возвращает событие, которое было обработано.
Параметры
- строка
$name - Имя события.
- массив|null
$dataнеобязательно null - Любое значение, которое вы хотите передать вместе с этим событием, чтобы его могли прочитать слушатели.
- объект|null
$subjectнеобязательно null - Объект, к которому относится это событие ($this по умолчанию).
Возвращаемое значение
Cake\Event\Event\Cake\Event\Event
Реализация
Cake\Event\EventDispatcherInterface::dispatchEvent() eventManagersource public
eventManager( Cake\Event\EventManager $eventManager null )
Возвращает экземпляр менеджера Cake\Event\EventManager для этого объекта.
Вы можете использовать этот экземпляр для регистрации новых слушателей или обратных вызовов для событий объекта, или создавать свои собственные события и вызывать их по своему желанию.
Параметры
-
Cake\Event\EventManager$eventManagerнеобязательно null - менеджер событий для установки
Возвращаемое значение
Cake\Event\EventManager\Cake\Event\EventManager
Реализация
Cake\Event\EventDispatcherInterface::eventManager() Краткое описание свойств
Свойства, унаследованные от Cake\Core\ObjectRegistry
Свойства, используемые из Cake\Event\EventDispatcherTrait
$_eventClasssource
protected строка
Имя класса по умолчанию для новых объектов события.
'\Cake\Event\Event' $_eventManagersource
protected Cake\Event\EventManager
Экземпляр Cake\Event\EventManager, используемый этим объектом для отправки внутренних событий.
null
© 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.Controller.ComponentRegistry.html