Класс Controller
Класс контроллера приложения для организации бизнес-логики. Предоставляет базовые функции, такие как отображение представлений внутри макетов, автоматическое доступность моделей, перенаправление, обратные вызовы и многое другое.
Контроллеры должны предоставлять ряд методов «действия». Это публичные методы контроллера, которые не унаследованы от Controller. Каждое действие служит конечной точкой для выполнения определенного действия над ресурсом или коллекцией ресурсов. Например, добавление или редактирование нового объекта или перечисление набора объектов.
Вы можете получить доступ к параметрам запроса, используя $this->request. Объект запроса содержит все POST, GET и FILES, которые были частью запроса.
После выполнения требуемого действия контроллеры отвечают за создание ответа. Обычно это принимает форму сгенерированного View, или, возможно, перенаправления на другой URL. В любом случае $this->response позволяет вам управлять всеми аспектами ответа.
Контроллеры создаются Dispatcher на основе параметров запроса и маршрутизации. По умолчанию контроллеры и действия используют стандартные имена. Например, /posts/index отображается на PostsController::index(). Вы можете переопределить URL-адреса, используя Router::connect() или RouterBuilder::connect().
Обратные вызовы жизненного цикла
CakePHP запускает ряд обратных вызовов жизненного цикла во время каждого запроса. Реализуя метод, вы можете получить связанные события. Доступные обратные вызовы:
-
beforeFilter(Event $event)Вызывается перед каждым действием. Это хорошее место для выполнения общей логики, которая применима ко всем действиям. -
beforeRender(Event $event)Вызывается перед отрисовкой представления. -
beforeRedirect(Event $event, $url, Response $response)Вызывается перед выполнением перенаправления. -
afterFilter(Event $event)Вызывается после завершения каждого действия и после отрисовки представления.
- Cake\Controller\Controller реализует Cake\Event\EventListenerInterface, Cake\Event\EventDispatcherInterface использует Cake\Event\EventDispatcherTrait , Cake\ORM\Locator\LocatorAwareTrait , Cake\Log\LogTrait , Cake\Utility\MergeVariablesTrait , Cake\Datasource\ModelAwareTrait , Cake\Routing\RequestActionTrait , Cake\View\ViewVarsTrait
Непосредственные подклассы
Ссылка: https://book.cakephp.org/3.0/ru/controllers.html
Расположение: Controller/Controller.php
Краткое описание свойств
-
$ViewpublicЭкземпляр представления, созданного во время отрисовки. Не будет установлен до тех пор, пока не будет вызван Controller::render().
- Экземпляр ComponentRegistry, используемый для создания компонентов
$_componentsprotected -
$_responseClassprotectedИмя класса для создания объекта ответа.string -
$_validViewOptionsprotectedЭти свойства контроллера будут переданы от контроллера к представлению в качестве опций.array -
$autoRenderprotectedbooleanУстановить в true, чтобы автоматически отрисовать представление после логики действия.
-
$componentspublicarrayМассив, содержащий имена компонентов, используемых этим контроллером. Имена компонентов не должны содержать часть "Component" имени класса.
-
$helperspublicarrayМассив, содержащий имена используемых этим контроллером помощников. Элементы массива не должны содержать часть "Helper" имени класса.
-
$nameprotectedИмя этого контроллера. Имена контроллеров во множественном числе, названные по модели, которую они обрабатывают.string -
$paginatepublicНастройки для постраничной навигации.array -
$passedArgspublicСодержит все переданные параметры.array -
$pluginprotectedАвтоматически устанавливается в имя плагина.string|null -
$requestpublicЭкземпляр объекта \Cake\Http\ServerRequest, содержащий информацию о текущем запросе. Этот объект содержит всю информацию о запросе и несколько методов для чтения дополнительной информации о запросе.
- Экземпляр объекта ответа, содержащий информацию о предстоящем ответе
$responsepublic
Краткое описание магических свойств
-
$Authpublic -
$Cookiepublic -
$Csrfpublic -
$Flashpublic -
$Paginatorpublic -
$RequestHandlerpublic -
$Securitypublic
Краткое описание магических свойств (унаследованных)
Краткое описание свойств (унаследованных)
-
_eventClass,_eventManager_tableLocator_modelFactories,_modelType,modelClass_viewBuilder,viewClass,viewVars
Краткое описание методов
- __construct() publicКонструктор.
- __get() publicМагический аксессор для автозагрузки моделей.
- __set() publicМагический сеттер для удалённых свойств.
- _loadComponents() protectedЗагружает определённые компоненты с помощью фабрики компонентов.
- _mergeControllerVars() protected
Объединяет компоненты, переменные helpers из родительских классов.
- _viewPath() protectedПолучение пути к представлению на основе имени контроллера и префикса запроса.
- afterFilter() publicВызывается после выполнения и отрисовки действия контроллера.
- beforeFilter() public
Вызывается перед действием контроллера. Вы можете использовать этот метод для настройки и персонализации компонентов или выполнения логики, которая должна выполняться перед каждым действием контроллера.
- beforeRedirect() public
Метод beforeRedirect вызывается при вызове метода перенаправления контроллера, но до выполнения любых дальнейших действий.
- beforeRender() public
Вызывается после выполнения действия контроллера, но перед отрисовкой представления. Вы можете использовать этот метод для выполнения логики или установки переменных представления, необходимых для каждого запроса.
- components() publicПолучение реестра компонентов для этого контроллера.
- disableAutoRender() publicОтключение автоматической отрисовки действия.
- enableAutoRender() publicВключение автоматической отрисовки действия.
- getName() publicВозвращает имя контроллера.
- getPlugin() publicВозвращает имя плагина.
- getRequest() publicПолучение экземпляра запроса.
- getResponse() publicПолучение экземпляра ответа.
- implementedEvents() public
Возвращает список всех событий, которые будут происходить в контроллере в течение его жизненного цикла. Вы можете переопределить эту функцию, чтобы добавить свои собственные обработчики событий
- initialize() publicМетод инициализации.
- invokeAction() public
Запускает действие контроллера. Проверяет, что действие существует и не является закрытым.
- isAction() publicМетод проверки доступности действия из URL.
- isAutoRenderEnabled() publicВозвращает true, если действие должно быть отображено автоматически.
- loadComponent() publicДобавление компонента в реестр контроллера.
- paginate() publicОбработка пагинации записей в объектах Table.
- redirect() publicПеренаправление на заданный $url после отключения $this->autoRender.
- referer() publicВозвращает URL-адрес, по которому был сделан запрос.
- render() publicСоздаёт соответствующий класс представления, передаёт ему данные и использует его для отрисовки выходных данных представления.
- setAction() publicВнутренне перенаправляет одно действие на другое. Не выполняет другой HTTP-запрос, в отличие от Controller::redirect().
- setName() publicУстанавливает имя контроллера.
- setPlugin() publicУстанавливает имя плагина.
- setRequest() public
Устанавливает объекты запроса и настраивает ряд свойств контроллера на основе содержимого запроса. Контроллер действует как прокси для определённых переменных представления, которые также должны быть обновлены здесь. Свойства, которые устанавливаются:
- setResponse() publicУстанавливает экземпляр ответа.
- shutdownProcess() public
Выполнение различных процессов завершения работы для данного контроллера. Вызов компонентов и обратных вызовов контроллера в правильном порядке.
- startupProcess() public
Выполнение процесса запуска для данного контроллера. Вызов компонентов и обратных вызовов контроллера в правильном порядке.
Подробное описание методов
__construct()source public
__construct( Cake\Http\ServerRequest $request = null , Cake\Http\Response $response = null , string|null $name = null , Cake\Event\EventManager|null $eventManager = null , Cake\Controller\ComponentRegistry|null $components = null )
Конструктор.
Устанавливает ряд свойств на основе соглашений, если они пустые. Чтобы переопределить соглашения, которые использует CakePHP, вы можете определить свойства в объявлении своего класса.
Параметры
-
Cake\Http\ServerRequest$requestнеобязательный null Объект запроса для этого контроллера. Может быть null для тестирования, но ожидайте, что функции, использующие параметры запроса, не будут работать.
-
Cake\Http\Response$responseнеобязательный null - Объект ответа для этого контроллера.
- строка|null
$nameнеобязательный null - Переопределение имени, полезно при тестировании с использованием эмуляторов.
-
Cake\Event\EventManager|null$eventManagerнеобязательный null - Менеджер событий. По умолчанию — новый экземпляр.
-
Cake\Controller\ComponentRegistry|null$componentsнеобязательный null - Реестр компонентов. По умолчанию — новый экземпляр.
__get()source public
__get( string $name )
Магический аксессор для автозагрузки моделей.
Параметры
- строка
$name - Имя свойства
Возвращает
boolean|objectЭкземпляр модели или false
__set()source public
__set( string $name , mixed $value )
Магический сеттер для удалённых свойств.
Параметры
- строка
$name - Имя свойства.
- смешанный
$value - Значение для установки.
_loadComponents()source protected
_loadComponents( )
Загружает определённые компоненты с помощью фабрики компонентов.
_mergeControllerVars()source protected
_mergeControllerVars( )
Объединяет компоненты, переменные helpers из родительских классов.
_viewPath()source protected
_viewPath( )
Получение пути к представлению на основе имени контроллера и префикса запроса.
Возвращает
строкаafterFilter()source public
afterFilter( Cake\Event\Event $event )
Вызывается после выполнения и рендеринга действия контроллера.
Параметры
-
Cake\Event\Event$event - Экземпляр события
Возвращает
Cake\Http\Response|nullСсылка
https://book.cakephp.org/3.0/ru/controllers.html#request-life-cycle-callbacksbeforeFilter()source public
beforeFilter( Cake\Event\Event $event )
Вызывается перед действием контроллера. Вы можете использовать этот метод для настройки и настройки компонентов или выполнения логики, которая должна выполняться перед каждым действием контроллера.
Параметры
-
Cake\Event\Event$event - Экземпляр события
Возвращает
Cake\Http\Response|nullСсылка
https://book.cakephp.org/3.0/ru/controllers.html#request-life-cycle-callbacksbeforeRedirect()source public
beforeRedirect( Cake\Event\Event $event , string|array $url , Cake\Http\Response $response )
Метод beforeRedirect вызывается при вызове метода redirect контроллера, но перед любыми дальнейшими действиями.
Если событие остановлено, контроллер не будет продолжать перенаправлять запрос. Переменные $url и $status имеют то же значение, что и для метода контроллера. Вы можете установить результат события в экземпляр ответа или изменить местоположение перенаправления, используя экземпляр ответа контроллера.
Параметры
-
Cake\Event\Event$event - Экземпляр события
- строка|массив
$url Строка или массив, представляющий URL, указывающий на другую локацию в приложении, или абсолютный URL
-
Cake\Http\Response$response - Объект ответа.
Возвращает
Cake\Http\Response|nullСсылка
https://book.cakephp.org/3.0/ru/controllers.html#request-life-cycle-callbacksbeforeRender()source public
beforeRender( Cake\Event\Event $event )
Вызывается после выполнения действия контроллера, но перед рендерингом представления. Вы можете использовать этот метод для выполнения логики или установки переменных представления, которые необходимы для каждого запроса.
Параметры
-
Cake\Event\Event$event - Экземпляр события
Возвращает
Cake\Http\Response|nullСсылка
https://book.cakephp.org/3.0/ru/controllers.html#request-life-cycle-callbackscomponents()source public
components( Cake\Controller\ComponentRegistry|null $components = null )
Получить реестр компонентов для этого контроллера.
Если вызван с первым параметром, он будет установлен как свойство контроллера $this->_components
Параметры
-
Cake\Controller\ComponentRegistry|null$componentsoptional null - Реестр компонентов.
Возвращает
Cake\Controller\ComponentRegistrydisableAutoRender()source public
disableAutoRender( )
Отключить автоматический рендеринг действия.
Возвращает
$this
Since
3.6.0enableAutoRender()source public
enableAutoRender( )
Включить автоматический рендеринг действия.
Возвращает
$this
Since
3.6.0getRequest()source public
getRequest( )
Получает экземпляр запроса.
Возвращает
Cake\Http\ServerRequestС версии
3.6.0getResponse()source public
getResponse( )
Получает экземпляр ответа.
Возвращает
Cake\Http\ResponseС версии
3.6.0implementedEvents()source public
implementedEvents( )
Возвращает список всех событий, которые будут срабатывать в контроллере в течение его жизненного цикла. Вы можете переопределить эту функцию, чтобы добавить свои собственные обработчики.
Возвращает
arrayРеализация
Cake\Event\EventListenerInterface::implementedEvents() initialize()source public
initialize( )
Метод инициализации.
Реализуйте этот метод, чтобы избежать необходимости перезаписи конструктора и вызова родительского.
invokeAction()source public
invokeAction( )
Выполняет действие контроллера. Проверяет, что действие существует и не является закрытым.
Возвращает
mixedРезультат ответа.
Выбрасывает
ReflectionExceptionisAction()source public
isAction( string $action )
Метод для проверки доступности действия из URL.
Переопределите этот метод, чтобы изменить, какие методы контроллера могут быть доступны. По умолчанию запрещается доступ ко всем методам в Cake\Controller\Controller и разрешаются все публичные методы всех подклассов этого класса.
Параметры
- string
$action - Действие для проверки.
Возвращает
booleanДоступно ли действие из URL.
Выбрасывает
ReflectionExceptionisAutoRenderEnabled()source public
isAutoRenderEnabled( )
Возвращает true, если действие должно быть отображено автоматически.
Возвращает
booleanС версии
3.6.0loadComponent()source public
loadComponent( string $name , array $config = [] )
Добавление компонента в реестр контроллера.
Этот метод также установит компонент в свойство. Например:
$this->loadComponent('Acl.Acl'); Приведет к установке свойства Toolbar.
Параметры
- string
$name - Имя загружаемого компонента.
- array
$configнеобязательно [] - Настройка для компонента.
Возвращает
Cake\Controller\ComponentВыбрасывает
Exceptionpaginate()source public
paginate( Cake\ORM\Table|string|Cake\ORM\Query|null $object = null , array $settings = [] )
Обрабатывает пагинацию записей в объектах таблиц.
Загрузит ссылку на объект таблицы и позволит компоненту PaginatorComponent выполнить пагинацию запроса, используя данные запроса и настройки, определенные в $this->paginate.
Этот метод также сделает PaginatorHelper доступным в представлении.
Параметры
-
Cake\ORM\Table|строка|Cake\ORM\Query|null$objectнеобязательно null Таблица для пагинации (например: экземпляр таблицы, 'ИмяТаблицы' или объект запроса)
- массив
$settingsнеобязательно [] - Настройки/конфигурация, используемые для пагинации.
Возвращает
Cake\ORM\ResultSet|Cake\Datasource\ResultSetInterfaceРезультаты запроса
Выбрасывает
RuntimeExceptionКогда не удается найти совместимый объект таблицы.
Ссылка
https://book.cakephp.org/3.0/ru/controllers.html#paginating-a-modelredirect()source public
redirect( string|array $url , integer $status = 302 )
Перенаправляет на заданный $url после отключения $this->autoRender.
Параметры
- строка|массив
$url Строка или URL на основе массива, указывающий на другое местоположение в приложении, или абсолютный URL
- целое число
$statusнеобязательно 302 - Код состояния HTTP (например: 301)
Возвращает
Cake\Http\Response|nullСсылка
https://book.cakephp.org/3.0/ru/controllers.html#Controller::redirectreferer()source public
referer( string|array|null $default = null , boolean $local = false )
Возвращает URL, который ссылается на этот запрос.
Параметры
- строка|массив|null
$defaultнеобязательно null - URL по умолчанию для использования, если HTTP_REFERER не может быть прочитан из заголовков
- логическое значение
$localнеобязательно false - Если true, ограничивает ссылающиеся URL локальным сервером
Возвращает
строкаURL, ссылающийся на запрос
render()source public
render( string|null $view = null , string|null $layout = null )
Инициализирует правильный класс представления, передает ему данные и использует его для рендеринга выходных данных представления.
Параметры
- строка|null
$viewнеобязательно null - Представление для использования при рендеринге
- строка|null
$layoutнеобязательно null - Макет для использования
Возвращает
Cake\Http\ResponseОбъект ответа, содержащий отрисованное представление.
Ссылка
https://book.cakephp.org/3.0/ru/controllers.html#rendering-a-viewsetAction()source public
setAction( string $action , ... $args )
Внутренне перенаправляет одно действие на другое. Не выполняет другой HTTP-запрос в отличие от Controller::redirect()
Примеры:
setAction('another_action');
setAction('action_with_parameters', $parameter1); Параметры
- строка
$action Новое действие, на которое выполняется 'перенаправление'. Любые другие параметры, переданные в этот метод, будут переданы в качестве параметров новому действию.
- ...
$args - $args Аргументы, переданные действию
Возвращает
смешанныйВозвращает значение, возвращаемое вызванным действием
setName()source public
setName( string $name )
Устанавливает имя контроллера.
Параметры
- строка
$name - Имя контроллера.
Возвращает
$this
Since
3.6.0setPlugin()source public
setPlugin( string $name )
Устанавливает имя плагина.
Параметры
- строка
$name - Имя плагина.
Возвращает
$this
Since
3.6.0setRequest()source public
setRequest( Cake\Http\ServerRequest $request )
Устанавливает объекты запроса и настраивает ряд свойств контроллера на основе содержимого запроса. Контроллер действует как прокси для определенных переменных представления, которые также должны быть обновлены здесь. Свойства, которые устанавливаются, следующие:
- $this->request - Для параметра $request
- $this->passedArgs - То же, что и $request->params['pass]
Параметры
-
Cake\Http\ServerRequest$request - Экземпляр запроса.
Возвращает
$this
setResponse()source public
setResponse( Cake\Http\Response $response )
Устанавливает экземпляр ответа.
Параметры
-
Cake\Http\Response$response - Экземпляр ответа.
Возвращает
$this
Since
3.6.0shutdownProcess()source public
shutdownProcess( )
Выполняет различные процессы завершения для этого контроллера. Вызывает компоненты и обратные вызовы контроллера в правильном порядке.
- вызывает обратный вызов компонента
shutdown. - вызывает метод контроллера
afterFilter.
Возвращает
Cake\Http\Response|nullstartupProcess()source public
startupProcess( )
Выполняет процесс запуска для этого контроллера. Вызывает компоненты и обратные вызовы контроллера в правильном порядке.
- Инициализирует компоненты, вызывая их обратный вызов
initialize. - Вызывает контроллер
beforeFilter. - вызывает методы компонента
startup.
Возвращает
Cake\Http\Response|nullМетоды, используемые из Cake\Event\EventDispatcherTrait
dispatchEvent()source public
dispatchEvent( string $name , array|null $data = null , object|null $subject = null )
Обёртка для создания и отправки событий.
Возвращает отправленное событие.
Параметры
- строка
$name - Имя события.
- массив|null
$dataнеобязательно null Любое значение, которое вы хотите передать с этим событием, чтобы слушатели могли его прочитать.
- объект|null
$subjectнеобязательно null Объект, к которому относится это событие ($this по умолчанию).
Возвращает
Cake\Event\EventeventManager()source public deprecated
eventManager( Cake\Event\EventManager $eventManager = null )
Возвращает экземпляр менеджера Cake\Event\EventManager для этого объекта.
Вы можете использовать этот экземпляр для регистрации новых слушателей или обратных вызовов на события объекта, или создавать свои собственные события и вызывать их по своему желанию.
Устарело
3.5.0 Используйте getEventManager()/setEventManager() вместо этого.Параметры
-
Cake\Event\EventManager$eventManagerнеобязательно null - eventManager для установки
Возвращает
Cake\Event\EventManagergetEventManager()source public
getEventManager( )
Возвращает экземпляр менеджера Cake\Event\EventManager для этого объекта.
Вы можете использовать этот экземпляр для регистрации новых слушателей или обратных вызовов на события объекта, или создавать свои собственные события и вызывать их по своему желанию.
Возвращает
Cake\Event\EventManagersetEventManager()source public
setEventManager( Cake\Event\EventManager $eventManager )
Возвращает экземпляр менеджера Cake\Event\EventManager для этого объекта.
Вы можете использовать этот экземпляр для регистрации новых слушателей или обратных вызовов для событий объекта, или создавать собственные события и запускать их по мере необходимости.
Параметры
-
Cake\Event\EventManager$eventManager - устанавливаемый менеджер событий
Возвращаемое значение
$this
Методы, используемые из Cake\ORM\Locator\LocatorAwareTrait
getTableLocator()source public
getTableLocator( )
Получает локатор таблицы.
Возвращаемое значение
Cake\ORM\Locator\LocatorInterfacesetTableLocator()source public
setTableLocator( Cake\ORM\Locator\LocatorInterface $tableLocator )
Устанавливает локатор таблицы.
Параметры
-
Cake\ORM\Locator\LocatorInterface$tableLocator - Экземпляр LocatorInterface.
Возвращаемое значение
$this
tableLocator()source public deprecated
tableLocator( Cake\ORM\Locator\LocatorInterface $tableLocator = null )
Устанавливает локатор таблицы. Если параметры не переданы, он вернёт текущий используемый локатор.
Устарело
3.5.0 Используйте getTableLocator()/setTableLocator() вместо этого.Параметры
-
Cake\ORM\Locator\LocatorInterface$tableLocatorнеобязательно null - Экземпляр LocatorInterface.
Возвращаемое значение
Cake\ORM\Locator\LocatorInterfaceМетоды, используемые из 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Успешность записи в журнал.
Методы, используемые из Cake\Utility\MergeVariablesTrait
_mergeProperty()source protected
_mergeProperty( string $property , array $parentClasses , array $options )
Объединение одного свойства со значениями, объявленными во всех родительских классах.
Параметры
- string
$property - Имя объединяемого свойства.
- array
$parentClasses - Массив классов, которые вы хотите объединить.
- array
$options - Параметры для объединения свойства, см. _mergeVars()
_mergePropertyData()source protected
_mergePropertyData( array $current , array $parent , boolean $isAssoc )
Объединение каждого из ключей в свойстве.
Параметры
- array
$current - Текущее объединённое значение.
- array
$parent - Значение родительского класса.
- boolean
$isAssoc - Флаг, указывающий, должно ли объединение выполняться в ассоциативном режиме.
Возвращаемое значение
mixedОбновлённое значение.
_mergeVars()source protected
_mergeVars( array $properties , array $options = [] )
Объединение списка $properties со всеми родительскими классами текущего класса.
Параметры:
-
associative- Список свойств, которые должны обрабатываться как ассоциативные массивы. Свойства в этом списке будут переданы через Hash::normalize() перед объединением.
Параметры
- array
$properties - Массив свойств и стратегии объединения для них.
- array
$optionsнеобязательно [] - Параметры, используемые при объединении свойств.
Методы, используемые из Cake\Datasource\ModelAwareTrait
_setModelClass()source protected
_setModelClass( string $name )
Устанавливает свойства modelClass и modelKey, основываясь на соглашениях.
Если свойства уже заданы, они не будут перезаписаны.
Параметры
- string
$name - Имя класса.
getModelType()source public
getModelType( )
Получение типа модели, который будет использоваться этим классом.
Возвращаемое значение
stringloadModel()source public
loadModel( string|null $modelClass = null , string|null $modelType = null )
Загрузка и построение объектов хранилища, необходимых этому объекту.
Обычно используется для загрузки объектов таблиц ORM. Также может использоваться для загрузки других типов объектов хранилища, которые использует ваше приложение.
Если поставщик репозитория не возвращает объект, будет выброшено исключение MissingModelException.
Параметры
- string|null
$modelClassнеобязательно null - Имя класса модели для загрузки. По умолчанию $this->modelClass
- string|null
$modelTypeнеобязательно null - Тип репозитория для загрузки. По умолчанию значение modelType().
Возвращаемое значение
Cake\Datasource\RepositoryInterfaceСозданный экземпляр модели.
Исключения
Cake\Datasource\Exception\MissingModelExceptionЕсли класс модели не найден.
InvalidArgumentException
При использовании типа, который не был зарегистрирован.
UnexpectedValueException
Если тип модели не определён
modelFactory()source public
modelFactory( string $type , callable $factory )
Переопределение существующей вызываемой функции для генерации хранилищ заданного типа.
Параметры
- string
$type - Имя типа репозитория, для которого предназначена функция-фабрика.
- callable
$factory - Функция-фабрика, используемая для создания экземпляров.
modelType()source public deprecated
modelType( string|null $modelType = null )
Устанавливает или получает тип модели, который будет использоваться этим классом
Устарело
3.5.0 Используйте getModelType()/setModelType() вместо этого.Параметры
- string|null
$modelTypeнеобязательно null - Тип модели или null для получения текущего
Возвращаемое значение
string|Cake\Datasource\ModelAwareTrait$this
setModelType()source public
setModelType( string $modelType )
Устанавливает тип модели, который будет использоваться этим классом.
Параметры
- string
$modelType - Тип модели
Возвращаемое значение
$this
Методы, используемые из Cake\Routing\RequestActionTrait
requestAction()source public устаревшее
requestAction( string|array $url , array $extra = [] )
Вызывает метод контроллера из любого места. Может использоваться для связи контроллеров между собой или для подключения плагинов к основному приложению. requestAction может использоваться для возврата отображаемых представлений или получения значения возвращаемого контроллером действия.
Внутри метод использует Router::reverse() для преобразования параметра $url в строковый URL. Вы должны использовать форматы URL, совместимые с Router::reverse().
Примеры
Базовый пример получения значения возвращаемого действия контроллера:
$variables = $this->requestAction('/articles/popular'); Базовый пример request action для получения отображаемой страницы без макета.
$viewHtml = $this->requestAction('/articles/popular', ['return']); Вы также можете передать URL в виде массива:
$vars = $this->requestAction(['controller' => 'articles', 'action' => 'popular']);
Передача других данных запроса
Вы можете передавать данные POST, GET, COOKIE и другие данные в запрос, используя соответствующие ключи. Куки могут передаваться с помощью ключа cookies. Параметры GET можно задать с помощью ключа query, а данные POST можно отправить с помощью ключа post.
$vars = $this->requestAction('/articles/popular', [
'query' => ['page' => 1],
'cookies' => ['remember_me' => 1],
]); Отправка значений среды или заголовков
По умолчанию действия, вызываемые с помощью этого метода, будут использовать значения глобальных переменных $_SERVER и $_ENV. Если вы хотите переопределить эти значения для действия запроса, вы можете указать эти значения:
$vars = $this->requestAction('/articles/popular', [
'environment' => ['CONTENT_TYPE' => 'application/json']
]); Передача сессии
По умолчанию действия, вызываемые с помощью этого метода, будут использовать стандартный объект сессии. Если вы хотите использовать определённую экземпляр сессии, вам нужно указать его.
$vars = $this->requestAction('/articles/popular', [
'session' => new Session($someSessionConfig)
]); Устаревшее
3.3.0 Вам следует переписать свой код, чтобы использовать ячейки представления вместо этого метода.Параметры
- строка|массив
$url Строка или URL в виде массива. В отличие от других массивов URL в CakePHP, этот URL не будет автоматически обрабатывать переданные аргументы в параметре $url.
- массив
$extraнеобязательно [] Если массив включает ключ "return", он устанавливает autoRender в true. Также может использоваться для отправки данных GET/POST и переданных аргументов.
Возвращает
смешанный типБулевое значение true или false при успешном/неуспешном выполнении или содержимое отображаемого действия, если в $extra установлен ключ 'return'.
Методы, используемые из Cake\View\ViewVarsTrait
createView()source public
createView( string|null $viewClass = null )
Создаёт экземпляр класса представления на основе текущей конфигурации.
Параметры
- строка|null
$viewClassнеобязательно null - Необязательное имя пространственно-именного класса представления для создания экземпляра.
Возвращает
Cake\View\ViewВыбрасывает
Cake\View\Exception\MissingViewExceptionЕсли класс представления не найден.
set()source public
set( string|array $name , mixed $value = null )
Сохраняет переменную или ассоциативный массив переменных для использования внутри шаблона.
Параметры
- строка|массив
$name - Строка или массив данных.
- смешанный тип
$valueнеобязательно null Значение в случае, если $name является строкой (в этом случае она работает как ключ). Не используется, если $name является ассоциативным массивом, иначе служит значениями для ключей $name.
Возвращает
$this
viewBuilder()source public
viewBuilder( )
Получить используемый билдер представлений.
Возвращает
Cake\View\ViewBuilderviewOptions()source public
viewOptions( string|array|null $options = null , boolean $merge = true )
Получить/Установить допустимые параметры представления в свойстве _validViewOptions объекта. Свойство создаётся как пустой массив, если оно не задано. Если вызвано без параметров, оно вернёт текущий список допустимых параметров представления. См. createView().
Параметры
- строка|массив|null
$optionsнеобязательно null - строка или массив строк, которые нужно добавить в _validViewOptions.
- boolean
$mergeнеобязательно true Объединять или перезаписывать существующие допустимые параметры представления. По умолчанию
true.
Возвращает
массивОбновлённые параметры представления в виде массива.
Краткое описание магических методов
Краткое описание магических методов, унаследованных от Cake\Event\EventDispatcherInterface
getEventManager() |
Подробное описание свойств
$Viewsource
public Cake\View\View
Экземпляр представления, созданный во время рендеринга. Не будет установлен, пока не будет вызван Controller::render().
Устаревшее
3.1.0 Используйте viewBuilder() вместо этого.$_componentssource
protected Cake\Controller\ComponentRegistry
Экземпляр ComponentRegistry, используемый для создания компонентов.
$_responseClasssource
protected строка
Имя класса, используемого для создания объекта ответа.
'Cake\Http\Response'
$_validViewOptionssource
protected массив
Эти свойства контроллера будут переданы от контроллера к представлению в качестве параметров.
См. также
Cake\View\View[
'passedArgs'
] $autoRendersource
protected булево
Устанавливается в true для автоматического рендеринга представления после логики действия.
true
$componentssource
public массив
Массив, содержащий имена компонентов, используемых этим контроллером. Имена компонентов не должны содержать часть "Component" имени класса.
Пример:
public $components = ['RequestHandler', 'Acl'];
Ссылка
https://book.cakephp.org/3.0/ru/controllers/components.htmlУстаревшее
3.0.0 Вы должны настраивать компоненты в методе Controller::initialize().[]
$helperssource
public массив
Массив, содержащий имена хелперов, используемых этим контроллером. Элементы массива не должны содержать часть "Helper" имени класса.
Пример:
public $helpers = ['Form', 'Html', 'Time'];
Ссылка
https://book.cakephp.org/3.0/ru/controllers.html#configuring-helpers-to-loadУстаревшее
3.0.0 Вы должны настраивать хелперы в методе AppView::initialize().[]
$namesource
protected строка
Имя этого контроллера. Имена контроллеров множественные, названные по модели, которую они обрабатывают.
Автоматически устанавливается с помощью соглашений в Controller::__construct().
$paginatesource
public массив
Настройки для пагинации.
Используется для предварительной настройки параметров пагинации для различных таблиц, которые ваш контроллер будет обрабатывать с пагинацией.
См. также
Cake\Controller\Component\PaginatorComponent[]
$passedArgssource
public array
Содержит все переданные параметры.
Устарело
3.1.0 Используйте$this->request->getParam('pass') вместо этого.[]
$requestsource
public Cake\Http\ServerRequest
Экземпляр объекта \Cake\Http\ServerRequest, содержащий информацию об текущем запросе. Этот объект содержит всю информацию о запросе и несколько методов для чтения дополнительной информации о запросе.
Устарело 3.6.0: Свойство станет защищённым в 4.0.0. Используйте getRequest()/setRequest вместо этого.
Ссылка
https://book.cakephp.org/3.0/ru/controllers/request-response.html#request$responsesource
public Cake\Http\Response
Экземпляр объекта Response, содержащий информацию о предстоящем ответе.
Устарело 3.6.0: Свойство станет защищённым в 4.0.0. Используйте getResponse()/setResponse вместо этого.
Ссылка
https://book.cakephp.org/3.0/ru/controllers/request-response.html#responseПодробное описание магических свойств
$Authsource
$Cookiesource
$Csrfsource
$Flashsource
$Paginatorsource
$RequestHandlersource
$Securitysource
© 2005–present 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.6/class-Cake.Controller.Controller.html