Spec-Zone.ru › CakePHP 3.4

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

Отладочные свойства объекта.

Возвращает

array

__get()source public

__get( string $name )

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

Параметры

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

Возвращает

mixed

__isset()source public

__isset( string $name )

Обеспечивает доступ isset к _loaded

Параметры

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

Возвращает

boolean

__set()source public

__set( string $name , mixed $object )

Устанавливает объект.

Параметры

string $name
Имя свойства для установки.
mixed $object
Объект для установки.

__unset()source public

__unset( string $name )

Удаляет объект.

Параметры

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

_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|boolean
Разрешенное имя или false при неудаче.

_throwMissingClassError()source abstract protected

_throwMissingClassError( string $class , string $plugin )

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

Параметры

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

Исключения

Exception

count()source public

count( )

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

Возвращает

integer

Реализация

Countable::count()

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

Возвращает

mixed

loaded()source public

loaded( )

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

Возвращает

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

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–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.4/class-Cake.Core.ObjectRegistry.html

Spec-Zone.ru

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