Spec-Zone.ru › CakePHP 3.8

Класс 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\Mailer\TransportRegistry
  • 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 )

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

Параметры

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

Возвращает

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

getIterator()source public

getIterator( )

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

Возвращает

ArrayIterator

Реализация

IteratorAggregate::getIterator()

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

Возвращает

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

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

$_loadedsource

protected object[]

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

[]

© 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.Core.ObjectRegistry.html

Spec-Zone.ru

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