Класс Component
Базовый класс для отдельного компонента. Компоненты предоставляют переиспользуемые фрагменты логики контроллера, которые могут быть объединены в контроллер. Компоненты также предоставляют обратные вызовы жизненного цикла запроса для вставки логики в определённые моменты.
Обратные вызовы жизненного цикла
Компоненты могут предоставлять несколько обратных вызовов, которые вызываются на различных этапах цикла запроса. Доступные обратные вызовы:
-
initialize()- Вызывается перед методом beforeFilter контроллера. -
startup()- Вызывается после метода beforeFilter контроллера. -
beforeRender()- Вызывается перед отрисовкой представления + макета. -
shutdown()- Вызывается после завершения действия и отрисовки представления, но перед Controller::afterFilter(). -
beforeRedirect()- Вызывается перед выполнением redirect().
- Объект
-
Компонент
Непосредственные подклассы
- AclComponent
- AuthComponent
- CookieComponent
- EmailComponent
- FlashComponent
- PaginatorComponent
- RequestHandlerComponent
- SecurityComponent
- SessionComponent
Ссылка: http://book.cakephp.org/2.0/ru/controllers/components.html
См.: Controller::$components
Авторские права: Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
Лицензия: MIT License
Расположение: Cake/Controller/Component.php
Резюме свойств
- Класс коллекции компонентов, используемый для ленивой загрузки компонентов.
$_Collectionprotected -
$_componentMapprotectedТаблица поиска компонентов, используемая для ленивой загрузки объектов компонентов.array -
$componentspublicДругие компоненты, используемые этим компонентом.array -
$settingspublicНастройки для этого компонентаarray
Резюме методов
- __construct() publicКонструктор
- __get() publicМагический метод для ленивой загрузки $components.
- beforeRedirect() public
Вызывается перед Controller::redirect(). Позволяет заменить URL, на который будет произведено перенаправление, на новый URL. Возвращаемое значение этого метода может быть массивом или строкой.
- beforeRender() public
Вызывается перед Controller::beforeRender(), перед загрузкой класса представления и перед Controller::render()
- initialize() publicВызывается перед Controller::beforeFilter().
- shutdown() publicВызывается после Controller::render() и перед выводом результата в браузер.
- startup() publicВызывается после Controller::beforeFilter() и перед выполнением действия контроллера
Подробное описание методов
__construct()source public
__construct( ComponentCollection $collection , array $settings array() )
Конструктор
Параметры
-
ComponentCollection$collection - ComponentCollection, который может использовать этот компонент для ленивой загрузки компонентов
- массив
$settingsнеобязательно array() - Массив настроек конфигурации.
Переопределяет
Object::__construct() __get()source public
__get( string $name )
Магический метод для ленивой загрузки $components.
Параметры
- строка
$name - Имя компонента для получения.
Возвращает
смешанный типОбъект компонента или null.
beforeRedirect()source public
beforeRedirect( Controller $controller , string|array $url , integer $status null , boolean $exit true )
Вызывается перед Controller::redirect(). Позволяет заменить URL, на который будет произведено перенаправление, на новый URL. Возвращаемое значение этого метода может быть массивом или строкой.
Если возвращаемое значение является массивом и содержит ключ 'url'. Вы также можете указать следующие:
-
statusКод состояния для перенаправления -
exitНужно ли завершить выполнение скрипта после перенаправления.
Если возвращаемое значение — строка или массив, не содержащий ключа 'url', оно будет использоваться в качестве нового URL для перенаправления.
Параметры
-
Controller$controller - Контроллер с компонентами для beforeRedirect
- строка|массив
$url - Строка или массив URL, на который производится перенаправление.
- целое число
$statusнеобязательно null - Код состояния перенаправления
- логическое значение
$exitнеобязательно true - Завершить выполнение скрипта после перенаправления
Возвращает
массив|nullМассив или null.
Ссылка
http://book.cakephp.org/2.0/ru/controllers/components.html#Component::beforeRedirectbeforeRender()source public
beforeRender( Controller $controller )
Вызывается перед Controller::beforeRender(), перед загрузкой класса представления и перед Controller::render()
Параметры
-
Controller$controller - Контроллер с компонентами для beforeRender
Ссылка
http://book.cakephp.org/2.0/ru/controllers/components.html#Component::beforeRenderinitialize()source public
initialize( Controller $controller )
Вызывается перед Controller::beforeFilter().
Параметры
-
Controller$controller - Контроллер с компонентами для инициализации
Ссылка
http://book.cakephp.org/2.0/ru/controllers/components.html#Component::initializeshutdown()source public
shutdown( Controller $controller )
Вызывается после Controller::render() и перед выводом результата в браузер.
Параметры
-
Controller$controller - Контроллер с компонентами для завершения работы
Ссылка
http://book.cakephp.org/2.0/ru/controllers/components.html#Component::shutdownstartup()source public
startup( Controller $controller )
Вызывается после Controller::beforeFilter() и перед выполнением действия контроллера
Параметры
-
Controller$controller - Контроллер с компонентами для запуска
Ссылка
http://book.cakephp.org/2.0/ru/controllers/components.html#Component::startupНаследуемые методы от Объекта
_mergeVars()source protected
_mergeVars( array $properties , string $class , boolean $normalize true )
Объединяет свойства этого объекта $property со свойством в определении $class. Значение свойства этого класса будет объединено поверх $class'
Это предоставляет часть DRY-магии CakePHP. Если вы хотите её отключить, переопределите этот метод как пустую функцию.
Параметры
- массив
$properties - Имя свойств для объединения.
- строка
$class - Класс для объединения свойства с.
- логическое значение
$normalizeнеобязательно true - Установите значение true, чтобы выполнить свойства через Hash::normalize() перед объединением.
_set()source protected
_set( array $properties array() )
Позволяет установить несколько свойств объекта в одной строке кода. Будут установлены только свойства, которые являются частью объявления класса.
Параметры
- массив
$propertiesнеобязательно массив() - Ассоциативный массив, содержащий свойства и соответствующие значения.
_stop()source protected
_stop( integer|string $status 0 )
Остановка выполнения текущего скрипта. Оборачивает exit(), что облегчает тестирование.
Параметры
- целое число или строка
$statusнеобязательно 0 - см. http://php.net/exit для значений
dispatchMethod()source public
dispatchMethod( string $method , array $params array() )
Вызывает метод данного объекта с заданными параметрами. Предоставляет объектно-ориентированную оболочку для call_user_func_array
Параметры
- строка
$method - Имя вызываемого метода
- массив
$paramsнеобязательно массив() - Список параметров для использования при вызове $method
Возвращаемое значение
mixedВозвращает результат вызова метода
log()source public
log( string $msg , integer $type LOG_ERR , null|string|array $scope null )
Удобный метод для записи сообщения в CakeLog. Подробнее о записи в журналы см. CakeLog::write().
Параметры
- строка
$msg - Сообщение журнала
- целое число
$typeнеобязательно LOG_ERR - Константа типа ошибки. Определена в app/Config/core.php.
- null|строка|массив
$scopeнеобязательно null Сфера(ы) создания сообщения журнала. Подробнее о сферах ведения журналов см. CakeLog::config().
Возвращаемое значение
booleanУспешность записи в журнал
requestAction()source public
requestAction( string|array $url , array $extra array() )
Вызывает метод контроллера из любого места. Может использоваться для связи контроллеров друг с другом или для подключения плагинов к основному приложению. requestAction может возвращать отображаемые представления или получать возвращаемое значение из действий контроллеров.
Внутренне этот метод использует Router::reverse() для преобразования параметра $url в строку URL. Используйте форматы URL, совместимые с Router::reverse().
Передача данных POST и GET
Данные POST и GET можно имитировать в requestAction. Используйте $extra['url'] для данных GET. Параметр $extra['data'] позволяет имитировать данные POST.
Параметры
- строка|массив
$url URL в виде строки или массива. В отличие от других массивов URL в CakePHP, этот URL не будет автоматически обрабатывать переданные и именованные аргументы в параметре $url.
- массив
$extraнеобязательно массив() Если массив содержит ключ "return", он устанавливает AutoRender в true. Также может использоваться для отправки данных GET/POST, и именованных/переданных аргументов.
Возвращаемое значение
mixedБулево значение true или false об успехе/неудачи или содержимое отображаемого действия, если в $extra задан ключ "return".
toString()source public
toString( )
Преобразование объекта в строку. Каждый класс может переопределять этот метод по необходимости.
Возвращаемое значение
stringНазвание этого класса
Подробное описание свойств
$_Collectionsource
protected ComponentCollection
Класс коллекции компонентов, используемый для ленивой загрузки компонентов.
$_componentMapsource
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/2.8/class-Component.html