Класс ComponentRegistry
ComponentRegistry — это реестр загруженных компонентов
Обрабатывает загрузку, создание и привязку событий для объектов класса компонента.
- Cake\Core\ObjectRegistry implements Countable, IteratorAggregate
-
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$controlleroptional null - Экземпляр контроллера.
_create()source protected
_create( string $class , string $alias , array $config )
Создание экземпляра компонента.
Часть шаблонового метода для Cake\Core\ObjectRegistry::load() Включенные компоненты будут зарегистрированы в диспетчере событий.
Параметры
- string
$class - Имя класса для создания.
- string
$alias - Псевдоним компонента.
- array
$config - Массив настроек для компонента.
Возвращаемое значение
Cake\Controller\ComponentСозданный класс компонента.
_resolveClassName()source protected
_resolveClassName( string $class )
Разрешение имени класса компонента.
Часть шаблонового метода для Cake\Core\ObjectRegistry::load()
Параметры
- string
$class - Частичное имя класса для разрешения.
Возвращаемое значение
string|falseЛибо правильное имя класса, либо false.
_throwMissingClassError()source protected
_throwMissingClassError( string $class , string $plugin )
Выбрасывает исключение, если компонент отсутствует.
Часть шаблонового метода для Cake\Core\ObjectRegistry::load() и Cake\Core\ObjectRegistry::unload()
Параметры
- string
$class - Отсутствующее имя класса.
- string
$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
__debugInfo()source public
__debugInfo( )
Объектные свойства, дружественные для отладки.
Возвращаемое значение
array__get()source public
__get( string $name )
Обеспечить публичный доступ для чтения к загруженным объектам
Параметры
- string
$name - Имя свойства для чтения
Возвращаемое значение
mixed__isset()source public
__isset( string $name )
Предоставить доступ isset к _loaded
Параметры
- string
$name - Имя проверяемого объекта.
Возвращаемое значение
boolean__set()source public
__set( string $name , mixed $object )
Устанавливает объект.
Параметры
- string
$name - Имя свойства для установки.
- mixed
$object - Объект для установки.
__unset()source public
__unset( string $name )
Удаляет объект.
Параметры
- string
$name - Имя свойства для удаления.
_checkDuplicate()source protected
_checkDuplicate( string $name , array $config )
Проверка на дублирование загрузки объекта.
Если загружается дубликат с другими настройками, это ошибка, и будет выброшено исключение.
Выбрасывается исключение, так как замена объекта не обновит никакие ссылки, которые могут быть у других объектов. Кроме того, простое обновление конфигурации во время выполнения не является хорошим вариантом, так как мы можем пропустить важную логику конструктора, зависящую от конфигурации.
Параметры
- string
$name - Имя псевдонима в реестре.
- array
$config - Данные конфигурации для нового экземпляра.
Исключения
RuntimeExceptionПри обнаружении дубликата.
count()source public
count( )
Возвращает количество загруженных объектов.
Возвращаемое значение
integerРеализация
Countable::count() get()source public
get( string $name )
Получить экземпляр загруженного объекта.
Параметры
- string
$name - Имя объекта.
Возвращаемое значение
object|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 - the eventManager to set
Возвращаемое значение
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 - the eventManager to set
Возвращаемое значение
$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.7/class-Cake.Controller.ComponentRegistry.html