Spec-Zone.ru › CakePHP 3.3

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

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

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

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

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

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

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

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

__debugInfo()source public

__debugInfo( )

Отладочная информация об объекте.

Возвращает

array

__get()source public

__get( string $name )

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

Параметры

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

Возвращает

mixed

__isset()source public

__isset( string $name )

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

Параметры

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

Возвращает

boolean

_checkDuplicate()source protected

_checkDuplicate( string $name , array $config )

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

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

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

Параметры

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

Исключения

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

_create()source abstract protected

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

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

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

Параметры

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

Возвращает

mixed

_resolveClassName()source abstract protected

_resolveClassName( string $class )

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

Параметры

string $class
Класс для разрешения.

Возвращает

string|false
Разрешенное имя или false при ошибке.

_throwMissingClassError()source abstract protected

_throwMissingClassError( string $class , string $plugin )

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

Параметры

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

Исключения

Exception

get()source public

get( string $name )

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

Параметры

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

Возвращает

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

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

loaded()source public

loaded( )

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

Возвращает

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

normalizeArray()source public

normalizeArray( array $objects )

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

Параметры

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

Возвращает

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

reset()source public

reset( )

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

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

set()source public

set( string $objectName , object $object )

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

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

Параметры

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

unload()source public

unload( string $objectName )

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

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

Параметры

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

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

$_loadedsource

protected массив

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

[]

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

Spec-Zone.ru

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