Класс Component
Базовый класс для отдельного компонента. Компоненты предоставляют многократно используемые фрагменты логики контроллера, которые можно объединить в контроллер. Компоненты также предоставляют обратные вызовы жизненного цикла запроса для вставки логики в определенные моменты.
Обработка инициализации
Как и контроллер и таблица, этот класс имеет обратный вызов initialize(), который вы можете использовать для добавления пользовательской логики «конструктора». Важно помнить, что каждый запрос (и подзапрос) будет создавать только один экземпляр любого заданного компонента.
Обратные вызовы жизненного цикла
Компоненты могут предоставлять несколько обратных вызовов, которые срабатывают на различных этапах цикла запроса. Доступные обратные вызовы:
-
beforeFilter(Event $event)Вызывается перед методом beforeFilter контроллера по умолчанию. -
startup(Event $event)Вызывается после метода beforeFilter контроллера и перед вызовом действия контроллера. -
beforeRender(Event $event)Вызывается перед методом beforeRender контроллера и перед загрузкой класса представления. -
shutdown(Event $event)Вызывается после завершения действия и отрисовки представления, но перед Controller::afterFilter(). -
beforeRedirect(Event $event $url, Response $response)Вызывается перед перенаправлением. Позволяет изменить URL, к которому будет перенаправление, возвращая экземпляр Response с новым URL, установленным с помощью Response::location(). Перенаправление можно предотвратить, остановив распространение события.
Хотя контроллер не является явным аргументом для методов обратного вызова, он является объектом каждого события и может быть получен с помощью Event::getSubject().
- Cake\Controller\Component реализует Cake\Event\EventListenerInterface использует Cake\Core\InstanceConfigTrait , Cake\Log\LogTrait
Непосредственные подклассы
- Cake\Controller\Component\AuthComponent
- Cake\Controller\Component\CookieComponent
- Cake\Controller\Component\CsrfComponent
- Cake\Controller\Component\FlashComponent
- Cake\Controller\Component\PaginatorComponent
- Cake\Controller\Component\RequestHandlerComponent
- Cake\Controller\Component\SecurityComponent
Ссылка: https://book.cakephp.org/3.0/ru/controllers/components.html
См.: \Cake\Controller\Controller::$components
Смесь: \Cake\Core\InstanceConfigTrait
Расположение: Controller/Component.php
Краткое описание свойств
-
$_componentMapprotectedТаблица поиска компонентов, используемая для ленивой загрузки объектов компонентов.array -
$_defaultConfigprotectedКонфигурация по умолчаниюarray - Класс реестра компонентов, используемый для ленивой загрузки компонентов.
$_registryprotected -
$componentspublicДругие компоненты, используемые этим компонентом.array - Объект запроса
$requestpublic - Объект ответа
$responsepublic
Наследованные свойства
Краткое описание методов
- __construct() publicКонструктор
- __debugInfo() public
Возвращает массив, который можно использовать для описания внутреннего состояния этого объекта.
- __get() publicМагический метод для ленивой загрузки $components.
- getController() publicПолучить контроллер, к которому привязан этот компонент.
- implementedEvents() publicПолучить обратные вызовы контроллера, которые интересуют этот компонент.
- initialize() publicМетод обратного вызова конструктора.
Подробное описание методов
__construct()source public
__construct( Cake\Controller\ComponentRegistry $registry , array $config [] )
Конструктор
Параметры
-
Cake\Controller\ComponentRegistry$registry - ComponentRegistry, который может использовать этот компонент для ленивой загрузки своих компонентов
- массив
$configнеобязательно [] - Массив настроек конфигурации.
__debugInfo()source public
__debugInfo( )
Возвращает массив, который можно использовать для описания внутреннего состояния этого объекта.
Возвращает
массив__get()source public
__get( string $name )
Магический метод для ленивой загрузки $components.
Параметры
- строка
$name - Имя компонента для получения.
Возвращает
смешанныйОбъект компонента или null.
getController()source public
getController( )
Получить контроллер, к которому привязан этот компонент.
Возвращает
Cake\Controller\ControllerПривязанный контроллер.
implementedEvents()source public
implementedEvents( )
Получить обратные вызовы контроллера, которые интересуют этот компонент.
Использует соглашения для сопоставления событий контроллера со стандартными именами методов обратного вызова компонента. Определяя один из методов обратного вызова, предполагается, что компонент заинтересован в соответствующем событии.
Переопределите этот метод, если вам нужно добавить обработчики событий нестандартного типа. Или если вы хотите, чтобы компоненты слушали нестандартные события.
Возвращает
массивРеализация
Cake\Event\EventListenerInterface::implementedEvents() initialize()source public
initialize( array $config )
Метод обратного вызова конструктора.
Реализуйте этот метод, чтобы избежать необходимости переопределения конструктора и вызова родительского метода.
Параметры
- массив
$config - Настройки конфигурации, предоставленные этому компоненту.
Методы, используемые из Cake\Core\InstanceConfigTrait
_configDelete()source protected
_configDelete( string $key )
Удаляет один ключ конфигурации.
Параметры
- строка
$key - Ключ для удаления.
Исключения
Cake\Core\Exception\Exceptionесли пытаетесь перезаписать существующую конфигурацию
_configRead()source protected
_configRead( string|null $key )
Читает ключ конфигурации.
Параметры
- строка|null
$key - Ключ для чтения.
Возвращает
смешанный_configWrite()source protected
_configWrite( string|array $key , mixed $value , boolean|string $merge false )
Записывает ключ конфигурации.
Параметры
- строка|массив
$key - Ключ для записи.
- смешанный
$value - Значение для записи.
- булево|строка
$mergeнеобязательно false True для рекурсивного объединения, «shallow» для простого объединения, false для перезаписи, по умолчанию false.
Исключения
Cake\Core\Exception\Exceptionесли пытаетесь перезаписать существующую конфигурацию
config()source public
config( string|array|null $key null , mixed|null $value null , boolean $merge true )
Получение/установка конфигурации.
Использование
Чтение всей конфигурации:
$this->config();
Чтение определенного значения:
$this->config('key'); Чтение вложенного значения:
$this->config('some.nested.key'); Установка определенного значения:
$this->config('key', $value); Установка вложенного значения:
$this->config('some.nested.key', $value); Обновление нескольких настроек конфигурации одновременно:
$this->config(['one' => 'value', 'another' => 'value']);
Устаревшее
3.4.0 используйте setConfig()/getConfig() вместо этого.Параметры
- string|array|null
$keyнеобязательно null - Ключ для получения/установки или массив конфигураций.
- mixed|null
$valueнеобязательно null - Значение для установки.
- boolean
$mergeнеобязательно true - Признак рекурсивного слияния или перезаписи существующей конфигурации, по умолчанию true.
Возвращает
mixedЗначение конфигурации для чтения, или сам объект при операциях записи.
Выбрасывает
Cake\Core\Exception\ExceptionПри попытке установить недопустимый ключ.
configShallow()source public
configShallow( string|array $key , mixed|null $value null )
Объединяет предоставленную конфигурацию с существующей. В отличие от config(), которая выполняет рекурсивное объединение для вложенных ключей, этот метод выполняет простое объединение.
Установка определенного значения:
$this->configShallow('key', $value); Установка вложенного значения:
$this->configShallow('some.nested.key', $value); Обновление нескольких настроек конфигурации одновременно:
$this->configShallow(['one' => 'value', 'another' => 'value']);
Параметры
- string|array
$key - Ключ для установки или массив конфигураций.
- mixed|null
$valueнеобязательно null - Значение для установки.
Возвращает
$this
getConfig()source public
getConfig( string|null $key null , mixed $default null )
Возвращает конфигурацию.
Использование
Чтение всей конфигурации:
$this->getConfig();
Чтение определенного значения:
$this->getConfig('key'); Чтение вложенного значения:
$this->getConfig('some.nested.key'); Чтение со значением по умолчанию:
$this->getConfig('some-key', 'default-value'); Параметры
- string|null
$keyнеобязательно null - Ключ для получения или null для всей конфигурации.
- mixed
$defaultнеобязательно null - Значение по умолчанию, если ключ не существует.
Возвращает
mixedЗначение конфигурации для чтения.
setConfig()source public
setConfig( string|array $key , mixed|null $value null , boolean $merge true )
Устанавливает конфигурацию.
Использование
Установка определенного значения:
$this->setConfig('key', $value); Установка вложенного значения:
$this->setConfig('some.nested.key', $value); Обновление нескольких настроек конфигурации одновременно:
$this->setConfig(['one' => 'value', 'another' => 'value']);
Параметры
- string|array
$key - Ключ для установки или массив конфигураций.
- mixed|null
$valueнеобязательно null - Значение для установки.
- boolean
$mergeнеобязательно true - Признак рекурсивного слияния или перезаписи существующей конфигурации, по умолчанию true.
Возвращает
$this
Выбрасывает
Cake\Core\Exception\ExceptionПри попытке установить недопустимый ключ.
Методы, используемые из Cake\Log\LogTrait
log()source public
log( mixed $msg , integer|string $level LogLevel::ERROR , string|array $context [] )
Удобный метод для записи сообщения в журнал. Подробнее о записи в журналы см. Log::write().
Параметры
- mixed
$msg - Сообщение журнала.
- integer|string
$levelнеобязательно LogLevel::ERROR - Уровень ошибки.
- string|array
$contextнеобязательно [] - Дополнительные данные журнала, относящиеся к этому сообщению.
Возвращает
booleanУспешность записи в журнал.
Подробное описание свойств
$_componentMapsource
protected array
Таблица поиска компонентов, используемая для отложенной загрузки объектов компонентов.
[]
$_defaultConfigsource
protected array
Конфигурация по умолчанию
Эти настройки объединяются с пользовательской конфигурацией при использовании компонента.
[]
$_registrysource
protected Cake\Controller\ComponentRegistry
Класс реестра компонентов, используемый для отложенной загрузки компонентов.
$requestsource
public Cake\Http\ServerRequest
Объект запроса
Устаревшее
3.4.0 Сохранение ссылок на запрос устарело. Вместо этого используйте Component::getController() или обратный вызов $event->getSubject(), чтобы получить доступ к контроллеру и запросу.
$responsesource
public Cake\Http\Response
Объект ответа
Устаревшее
3.4.0 Сохранение ссылок на ответ устарело. Вместо этого используйте Component::getController() или обратный вызов $event->getSubject(), чтобы получить доступ к контроллеру и ответу.
© 2005–2018 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.5/class-Cake.Controller.Component.html