Spec-Zone.ru › CakePHP 3.2

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

loaded()source public

loaded( )

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

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

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

normalizeArray()source public

normalizeArray( array $objects )

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

Параметры

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

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

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

reset()source public

reset( )

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

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

set()source public

set( string $objectName , object $object )

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

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

Параметры

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

unload()source public

unload( string $objectName )

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

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

Параметры

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

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

$_loadedsource

protected array

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

[]

© 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.2/class-Cake.Core.ObjectRegistry.html

Spec-Zone.ru

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