Spec-Zone.ru › CakePHP 3.6

Класс 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()

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

Исключения

Exception
Если класс не найден.

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

Spec-Zone.ru

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