Класс ComponentRegistry
ComponentRegistry — это реестр загруженных компонентов
Обрабатывает загрузку, создание и привязку событий для объектов класса компонента.
- Cake\Core\ObjectRegistry implements Countable, IteratorAggregate
-
Cake\Controller\ComponentRegistry implements 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() Включенные компоненты будут зарегистрированы в диспетчере событий.
Параметры
- 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
__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 )
Проверка на загрузку дублирующего объекта.
Если загружается дубликат с другими конфигурациями, это плохо и будет выброшено исключение.
Исключение вызывается, так как замена объекта не обновит любые ссылки, которые могут иметь другие объекты. Кроме того, простое обновление конфигурации runtime не является хорошим вариантом, так как нам могут быть нужны важные логика конструктора, зависящая от конфигурации.
Параметры
- 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
$configнеобязательно [] - Дополнительные настройки для загрузки объекта.
Возвращает
mixedВыбрасывает
ExceptionЕсли класс не найден.
loaded()source public
loaded( )
Получить список загруженных объектов.
Возвращает
arrayСписок имён объектов.
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
$dataнеобязательно null Любое значение, которое вы хотите передать с этим событием, его можно прочитать слушателями.
- object|null
$subjectнеобязательно 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$eventManagerнеобязательно 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.6/class-Cake.Controller.ComponentRegistry.html