Spec-Zone.ru › CakePHP 3.8

Класс ComponentRegistry

ComponentRegistry — это реестр загруженных компонентов

Обрабатывает загрузку, создание и привязку событий для объектов класса компонента.

Cake\Core\ObjectRegistry реализует Countable, IteratorAggregate
Расширенный Cake\Controller\ComponentRegistry реализует Cake\Event\EventDispatcherInterface использует Cake\Event\EventDispatcherTrait
Пространство имен: Cake\Controller
Расположение: Controller/ComponentRegistry.php

Краткое описание свойств

  • $_Controller protected
    Cake\Controller\Controller
    Контроллер, с которым была инициализирована эта коллекция.

Унаследованные свойства

  • _loaded _eventClass, _eventManager

Краткое описание методов

  • __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\MissingComponentException

getController()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( )

Свойства объекта для отладки.

Возвращает

массив

__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()
END_OF_DOCUMENT_MARKER

has()source public

has( string $name )

Проверить, загружен ли данный объект.

Параметры

string $name
Имя объекта для проверки.

Возвращает

boolean
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 вместо.

Параметры

string $objectName
Имя/класс объекта для загрузки.
array $config optional []
Дополнительные настройки для загрузки объекта.

Возвращает

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 $data optional null

Любое значение, которое вы хотите передать с этим событием, чтобы слушатели могли его прочитать.

object|null $subject optional null

Объект, к которому относится это событие ($this по умолчанию).

Возвращает

Cake\Event\Event

eventManager()source public deprecated

eventManager( Cake\Event\EventManager $eventManager = null )

Возвращает экземпляр менеджера Cake\Event\EventManager для этого объекта.

Вы можете использовать этот экземпляр для регистрации новых слушателей или обратных вызовов на события объекта, или для создания собственных событий и их запуска по мере необходимости.

Устарело

3.5.0 Используйте getEventManager()/setEventManager() вместо.

Параметры

Cake\Event\EventManager $eventManager optional null
диспетчер событий для установки

Возвращает

Cake\Event\EventManager

getEventManager()source public

getEventManager( )

Возвращает экземпляр менеджера Cake\Event\EventManager для этого объекта.

Вы можете использовать этот экземпляр для регистрации новых слушателей или обратных вызовов на события объекта, или для создания собственных событий и их запуска по мере необходимости.

Возвращает

Cake\Event\EventManager

setEventManager()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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API