Spec-Zone.ru › CakePHP 3.5

Класс ObjectRegistry

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

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

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

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

Cake\Core\ObjectRegistry реализует Countable, IteratorAggregate

Прямые подклассы

  • 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

Резюме свойств

  • $_loaded protected
    object[]
    Карта загруженных объектов.

Резюме методов

  • __debugInfo() public
    Свойства объекта для отладки.
  • __get() public
    Предоставление публичного чтения загруженных объектов
  • __isset() public
    Доступ isset к _loaded
  • __set() public
    Устанавливает объект.
  • __unset() public
    Удаляет объект.
  • _checkDuplicate() protected
    Проверка на дублирование загрузки объектов.
  • _create() abstract protected
    Создание экземпляра данного класса.
  • _resolveClassName() abstract protected
    Должен разрешить имя класса для данного типа объекта.
  • _throwMissingClassError() abstract protected
    Выбрасывает исключение, когда запрашиваемого имени объекта нет.
  • count() public
    Возвращает количество загруженных объектов.
  • get() public
    Получение экземпляра загруженного объекта.
  • getIterator() public
    Возвращает итератор массива.
  • has() public
    Проверка наличия загруженного объекта.
  • load() public
    Загрузка/создание экземпляра объекта.
  • loaded() public
    Получение списка загруженных объектов.
  • normalizeArray() public

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

  • reset() public
    Очистить загруженные экземпляры в реестре.
  • set() public
    Установить объект непосредственно в реестре по имени.
  • unload() public
    Удалить объект из реестра.

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

__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
При обнаружении дубликата.

_create()source abstract protected

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

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

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

Параметры

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

Возвращает

смешанный

_resolveClassName()source abstract protected

_resolveClassName( string $class )

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

Параметры

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

Возвращает

строка|логическое значение
Разрешенное имя или false при ошибке.

_throwMissingClassError()source abstract protected

_throwMissingClassError( string $class , string $plugin )

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

Параметры

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

Исключения

Исключение

count()source public

count( )

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

Возвращает

целое число

Реализация

Countable::count()
END_OF_DOCUMENT_MARKER

get()source public

get( string $name )

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

Параметры

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

Возвращаемое значение

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

getIterator()source public

getIterator( )

Возвращает итератор массива.

Возвращаемое значение

ArrayIterator

Реализация

IteratorAggregate::getIterator()

has()source public

has( string $name )

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

Параметры

строка $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 вместо этого.

Параметры

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

Возвращаемое значение

mixed

loaded()source public

loaded( )

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

Возвращаемое значение

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

normalizeArray()source public

normalizeArray( array $objects )

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

Параметры

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

Возвращаемое значение

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

reset()source public

reset( )

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

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

Возвращаемое значение


$this

set()source public

set( string $objectName , object $object )

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

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

Параметры

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

Возвращаемое значение


$this

unload()source public

unload( string $objectName )

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

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

Параметры

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

Возвращаемое значение


$this

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

$_loadedsource

protected object[]

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

[]

© 2005–2018 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.5/class-Cake.Core.ObjectRegistry.html

Spec-Zone.ru

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