Класс ComponentRegistry
ComponentRegistry — это реестр загруженных компонентов
Обрабатывает загрузку, создание и привязку событий для объектов класса компонента.
- Cake\Core\ObjectRegistry
-
Cake\Controller\ComponentRegistry implements Cake\Event\EventDispatcherInterface uses Cake\Event\EventDispatcherTrait
Краткое описание свойств
- Контроллер, с которым была инициирована эта коллекция.
$_Controllerprotected
Унаследованные свойства
Краткое описание методов
- __construct() publicКонструктор.
- _create() protectedСоздать экземпляр компонента.
- _resolveClassName() protectedРазрешить имя класса компонента.
- _throwMissingClassError() protectedВыбрасывает исключение, если компонент отсутствует.
- getController() publicПолучить контроллер, связанный с коллекцией.
- setController() publicУстановить контроллер, связанный с коллекцией.
Подробное описание методов
__construct()source public
__construct( Cake\Controller\Controller $controller null )
Конструктор.
Параметры
-
Cake\Controller\Controller$controllerнеобязательно null - Экземпляр контроллера.
_create()source protected
_create( string $class , string $alias , array $config )
Создать экземпляр компонента.
Часть шаблонового метода для Cake\Core\ObjectRegistry::load() Включенные компоненты будут зарегистрированы в диспетчере событий.
Параметры
- строка
$class - Имя класса для создания.
- строка
$alias - Псевдоним компонента.
- массив
$config - Массив настроек для компонента.
Возвращает
Cake\Controller\ComponentСозданный класс компонента.
_resolveClassName()source protected
_resolveClassName( string $class )
Разрешить имя класса компонента.
Часть шаблонового метода для Cake\Core\ObjectRegistry::load()
Параметры
- строка
$class - Частичное имя класса для разрешения.
Возвращает
строка|falseЛибо правильное имя класса, либо false.
_throwMissingClassError()source protected
_throwMissingClassError( string $class , string $plugin )
Выбрасывает исключение, если компонент отсутствует.
Часть шаблонового метода для Cake\Core\ObjectRegistry::load()
Параметры
- строка
$class - Отсутствующий класс.
- строка
$plugin - Плагин, в котором отсутствует компонент.
Исключения
Cake\Controller\Exception\MissingComponentExceptiongetController()source public
getController( )
Получить контроллер, связанный с коллекцией.
Возвращает
Cake\Controller\ControllerЭкземпляр контроллера
setController()source public
setController( Cake\Controller\Controller $controller )
Установить контроллер, связанный с коллекцией.
Параметры
-
Cake\Controller\Controller$controller - Экземпляр контроллера.
Методы, унаследованные от Cake\Core\ObjectRegistry
__get()source public
__get( string $name )
Обеспечить публичный доступ для чтения к загруженным объектам
Параметры
- строка
$name - Имя свойства для чтения
Возвращает
смешанный тип__isset()source public
__isset( string $name )
Предоставлять доступ isset к _loaded
Параметры
- строка
$name - Имя объекта, который проверяется.
Возвращает
булево значение_checkDuplicate()source protected
_checkDuplicate( string $name , array $config )
Проверка на дублирование при загрузке объекта.
Если загружается дубликат с разными настройками, это плохо, и будет выброшено исключение.
Исключение выводится, так как замена объекта не обновит ссылки, которые могут иметь другие объекты. Кроме того, простое обновление конфигурации во время выполнения не является хорошим вариантом, поскольку мы можем пропустить важную логику конструктора, зависящую от конфигурации.
Параметры
- строка
$name - Имя псевдонима в реестре.
- массив
$config - Данные конфигурации для нового экземпляра.
Исключения
RuntimeExceptionКогда обнаружен дубликат.
get()source public
get( string $name )
Получить экземпляр загруженного объекта.
Параметры
- строка
$name - Имя объекта.
Возвращает
объект|nullЭкземпляр объекта, если загружен, иначе null.
has()source public
has( string $name )
Проверить, загружен ли данный объект.
Параметры
- строка
$name - Имя объекта для проверки.
Возвращает
булево значениеTrue, если объект загружен, иначе 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необязательно [] - Дополнительные параметры для использования при загрузке объекта.
Возвращает
смешанный типloaded()source public
loaded( )
Получить список загруженных объектов.
Возвращает
массивСписок имён объектов.
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 - Имя объекта для удаления из реестра.
Методы, используемые из Cake\Event\EventDispatcherTrait
dispatchEvent()source public
dispatchEvent( string $name , array|null $data null , object|null $subject null )
Обёртка для создания и отправки событий.
Возвращает событие, которое было обработано.
Параметры
- string
$name - Имя события.
- array|null
$dataнеобязательно null Любое значение, которое вы хотите передать вместе с этим событием, чтобы его могли прочитать слушатели.
- object|null
$subjectнеобязательно null Объект, к которому относится это событие ($this по умолчанию).
Возвращает
Cake\Event\EventeventManager()source public
eventManager( Cake\Event\EventManager $eventManager null )
Возвращает экземпляр менеджера Cake\Event\EventManager для этого объекта.
Вы можете использовать этот экземпляр для регистрации новых слушателей или обратных вызовов для событий объекта, или для создания собственных событий и их вызова по своему желанию.
Параметры
-
Cake\Event\EventManager$eventManagerнеобязательно null - менеджер событий для установки
Возвращает
Cake\Event\EventManagerПодробности свойств
$_Controllersource
protected Cake\Controller\Controller
Контроллер, с которым была инициализирована эта коллекция.
null
© 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.3/class-Cake.Controller.ComponentRegistry.html