Класс ComponentRegistry
ComponentRegistry — это реестр загруженных компонентов
Обрабатывает загрузку, создание и привязку событий для объектов класса компонента.
- Cake\Core\ObjectRegistry реализует Countable, IteratorAggregate
-
Cake\Controller\ComponentRegistry реализует Cake\Event\EventDispatcherInterface использует 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 - Частичное имя класса для разрешения.
Возвращает
строка|ложьЛибо правильное имя класса, либо ложь.
_throwMissingClassError()source protected
_throwMissingClassError( string $class , string $plugin )
Выбрасывает исключение, когда компонент отсутствует.
Часть шаблонового метода для Cake\Core\ObjectRegistry::load() и Cake\Core\ObjectRegistry::unload()
Параметры
- строка
$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 - Имя проверяемого объекта.
Возвращает
логическое значение__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При обнаружении дубликата.
count()source public
count( )
Возвращает количество загруженных объектов.
Возвращает
целое числоРеализация
Countable::count() get()source public
get( string $name )
Получение экземпляра загруженного объекта.
Параметры
- строка
$name - Имя объекта.
Возвращает
объект|nullЭкземпляр объекта, если он загружен, иначе null.
getIterator()source public
getIterator( )
Возвращает итератор массива.
Возвращает
ArrayIteratorРеализация
IteratorAggregate::getIterator() 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 [] - Дополнительные настройки для загрузки объекта.
Возвращает
mixedВызывает исключение
ExceptionЕсли класс не найден.
loaded()source public
loaded( )
Получить список загруженных объектов.
Возвращает
string[]Список имён объектов.
normalizeArray()source public
normalizeArray( array $objects )
Нормализует массив объектов, создаёт массив, который упрощает ленивую загрузку.
Параметры
- array
$objects - Массив дочерних объектов для нормализации.
Возвращает
arrayМассив нормализованных объектов.
reset()source public
reset( )
Очистить загруженные экземпляры в реестре.
Если подкласс реестра имеет диспетчер событий, объекты также будут отключены от событий.
Возвращает
$this
set()source public
set( string $objectName , object $object )
Установить объект напрямую в реестр по имени.
Если этот коллектив реализует события, переданный объект будет присоединён к диспетчеру событий.
Параметры
- string
$objectName - Имя объекта для установки в реестр.
- object
$object - экземпляр для хранения в реестре
Возвращает
$this
unload()source public
unload( string $objectName )
Удалить объект из реестра.
Если этот реестр имеет диспетчер событий, объект также будет отключён от всех событий.
Параметры
- string
$objectName - Имя объекта для удаления из реестра.
Возвращает
$this
Методы, используемые из Cake\Event\EventDispatcherTrait
dispatchEvent()source public
dispatchEvent( string $name , array|null $data = null , object|null $subject = null )
Обёртка для создания и отправки событий.
Возвращает событие, которое было отправлено.
Параметры
- string
$name - Имя события.
- array|null
$dataoptional null Любое значение, которое вы хотите передать с этим событием, чтобы слушатели могли его прочитать.
- object|null
$subjectoptional null Объект, к которому относится это событие ($this по умолчанию).
Возвращает
Cake\Event\EventeventManager()source public deprecated
eventManager( Cake\Event\EventManager $eventManager = null )
Возвращает экземпляр менеджера Cake\Event\EventManager для этого объекта.
Вы можете использовать этот экземпляр для регистрации новых слушателей или обратных вызовов на события объекта, или для создания собственных событий и их запуска по мере необходимости.
Устарело
3.5.0 Используйте getEventManager()/setEventManager() вместо.Параметры
-
Cake\Event\EventManager$eventManageroptional null - диспетчер событий для установки
Возвращает
Cake\Event\EventManagergetEventManager()source public
getEventManager( )
Возвращает экземпляр менеджера Cake\Event\EventManager для этого объекта.
Вы можете использовать этот экземпляр для регистрации новых слушателей или обратных вызовов на события объекта, или для создания собственных событий и их запуска по мере необходимости.
Возвращает
Cake\Event\EventManagersetEventManager()source public
setEventManager( Cake\Event\EventManager $eventManager )
Возвращает экземпляр менеджера Cake\Event\EventManager для этого объекта.
Вы можете использовать этот экземпляр для регистрации новых слушателей или обратных вызовов на события объекта, или для создания собственных событий и их запуска по мере необходимости.
Параметры
-
Cake\Event\EventManager$eventManager - диспетчер событий для установки
Возвращает
$this
Магические методы, унаследованные от Cake\Event\EventDispatcherInterface
getEventManager() |
Подробности свойств
$_Controllersource
protected Cake\Controller\Controller
Контроллер, с которым была инициализирована эта коллекция.
© 2005–present 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.8/class-Cake.Controller.ComponentRegistry.html