Spec-Zone.ru › CakePHP 3.1

Класс ObjectRegistry

Выступает в роли реестра/фабрики для объектов.

Обеспечивает функциональность реестра и фабрики для типов объектов. Используется как базовый класс для различных функций повторного использования на основе композиции в CakePHP.

Каждый подкласс должен реализовать различные абстрактные методы для завершения шаблона метода load().

ObjectRegistry поддерживает EventManager, но каждый расширяющий класс должен использовать \Cake\Event\EventDispatcherTrait для добавления и отключения при установке и связывании.

Непосредственные известные подклассы

Cake\Cache\CacheRegistry, Cake\Console\HelperRegistry, Cake\Console\TaskRegistry, Cake\Controller\ComponentRegistry, Cake\Datasource\ConnectionRegistry, Cake\Log\LogEngineRegistry, Cake\ORM\BehaviorRegistry, Cake\View\HelperRegistry
Абстрактный
Пространство имен: Cake\Core
См.: Cake\Controller\ComponentRegistry
См.: Cake\View\HelperRegistry
См.: Cake\Console\TaskRegistry
Расположен в Core/ObjectRegistry.php

Подробное описание методов

__debugInfosource public

__debugInfo( )

Объекты в отладочном формате.

Возвращает

array
массив

__getsource public

__get( string $name )

Предоставление публичного чтения загруженных объектов

Параметры

строка $name
Имя свойства для чтения

Возвращает

mixed
смешанный тип

__issetsource public

__isset( string $name )

Предоставление доступа isset к _loaded

Параметры

строка $name
Имя объекта, который проверяется.

Возвращает

boolean
логическое значение

_checkDuplicatesource protected

_checkDuplicate( string $name , array $config )

Проверка на дублирование загрузки объектов.

Если загружается дубликат с другой конфигурацией, это ошибка, и будет выброшено исключение.

Исключение выбрасывается, так как замена объекта не обновит никакие ссылки, которые могут иметь другие объекты. Кроме того, простое обновление конфигурации во время выполнения не является хорошим вариантом, так как мы можем пропустить важную логику конструктора, зависящую от конфигурации.

Параметры

строка $name
Имя псевдонима в реестре.
массив $config
Данные конфигурации для нового экземпляра.

Выбрасывает

RuntimeException
При обнаружении дубликата.

_createsource абстрактный protected

_create( string $class , string $alias , array $config )

Создание экземпляра заданного класса.

Этот метод должен создавать и выполнять любую другую необходимую логику инициализации.

Параметры

строка $class
Класс для построения.
строка $alias
Псевдоним объекта.
массив $config
Параметры конфигурации для создания

Возвращает

mixed
смешанный тип

_resolveClassNamesource абстрактный protected

_resolveClassName( string $class )

Должен разрешить имя класса для заданного типа объекта.

Параметры

строка $class
Класс для разрешения.

Возвращает

string|false
Разрешенное имя или false в случае неудачи.

_throwMissingClassErrorsource абстрактный protected

_throwMissingClassError( string $class , string $plugin )

Выбросить исключение, когда запрошенного имени объекта нет.

Параметры

строка $class
Отсутствующий класс.
строка $plugin
Плагин, в котором отсутствует класс $class.

Выбрасывает

Exception
\Исключение

getsource public

get( string $name )

Получение экземпляра загруженного объекта.

Параметры

строка $name
Имя объекта.

Возвращает

object|null
Экземпляр объекта, если загружен, иначе null.

hassource public

has( string $name )

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

Параметры

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

Возвращает

boolean
True, если объект загружен, иначе false.

loadsource 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 необязательно []
Дополнительные настройки для использования при загрузке объекта.

Возвращает

mixed
смешанный тип

loadedsource public

loaded( )

Получить список загруженных объектов.

Возвращает

array
Список имён объектов.

normalizeArraysource public

normalizeArray( array $objects )

Нормализует массив объектов, создаёт массив, который облегчает ленивую загрузку

Параметры

массив $objects
Массив дочерних объектов для нормализации.

Возвращает

array
Массив нормализованных объектов.

resetsource public

reset( )

Очистить загруженные экземпляры в реестре.

Если подкласс реестра имеет диспетчер событий, объекты также будут отключены от событий.

setsource public

set( string $objectName , object $object )

Непосредственно установить объект в реестр по имени.

Если этот набор реализует события, переданный объект будет присоединён к диспетчеру событий

Параметры

строка $objectName
Имя объекта для установки в реестр.
объект $object
экземпляр для хранения в реестре

unloadsource public

unload( string $objectName )

Удалить объект из реестра.

Если этот реестр имеет диспетчер событий, объект также будет отключён от всех событий.

Параметры

строка $objectName
Имя объекта для удаления из реестра.

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

$_loadedsource

protected массив

Карта загруженных объектов.

[]

© 2005–2016 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.
http://api.cakephp.org/3.1/class-Cake.Core.ObjectRegistry.html

Spec-Zone.ru

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