Класс 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/en/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, содержащий информацию о текущем запросе. Этот объект содержит всю информацию о запросе и несколько методов для чтения дополнительной информации о запросе.
- Экземпляр объекта Response, содержащий информацию о предстоящем ответе
$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
Объединяет компоненты, переменные хелперов из родительских классов.
- _viewPath() protectedПолучить viewPath на основе имени контроллера и префикса запроса.
- afterFilter() publicВызывается после выполнения и рендеринга действия контроллера.
- beforeFilter() public
Вызывается перед действием контроллера. Вы можете использовать этот метод для настройки и персонализации компонентов или выполнения логики, которая должна произойти перед каждым действием контроллера.
- beforeRedirect() public
Метод beforeRedirect вызывается при вызове метода redirect контроллера, но до дальнейших действий.
- 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Обрабатывает постраничную навигацию записей в объектах таблицы.
- 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 - Объект ответа для данного контроллера.
- string|null
$nameнеобязательно null - Переопределение имени, полезно при тестировании с использованием эмуляторов.
-
Cake\Event\EventManager|null$eventManagerнеобязательно null - Менеджер событий. По умолчанию - новый экземпляр.
-
Cake\Controller\ComponentRegistry|null$componentsнеобязательно null - Реестр компонентов. По умолчанию - новый экземпляр.
__get()source public
__get( string $name )
Магический аксессор для автозагрузки моделей.
Параметры
- string
$name - Имя свойства
Возвращает
boolean|objectЭкземпляр модели или false
__set()source public
__set( string $name , mixed $value )
Магический установщик для удалённых свойств.
Параметры
- string
$name - Имя свойства.
- mixed
$value - Значение для установки.
_loadComponents()source protected
_loadComponents( )
Загружает определённые компоненты, используя фабрику компонентов.
_mergeControllerVars()source protected
_mergeControllerVars( )
_viewPath()source protected
_viewPath( )
Получить viewPath на основе имени контроллера и префикса запроса.
Возвращает
stringafterFilter()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
С тех пор как
3.6.0enableAutoRender()source public
enableAutoRender( )
Включить автоматическую отрисовку действия.
Возвращает
$this
С тех пор как
3.6.0getPlugin()source public
getPlugin( )
Возвращает имя плагина.
Возвращает
строка|nullС тех пор как
3.6.0getRequest()source public
getRequest( )
Получить экземпляр запроса.
Возвращает
Cake\Http\ServerRequestС тех пор как
3.6.0getResponse()source public
getResponse( )
Получить экземпляр ответа.
Возвращает
Cake\Http\ResponseС тех пор как
3.6.0implementedEvents()source public
implementedEvents( )
Возвращает список всех событий, которые будут срабатывать в контроллере во время его жизненного цикла. Вы можете переопределить эту функцию, чтобы добавить свои собственные обработчики событий
Возвращает
массивРеализация
Cake\Event\EventListenerInterface::implementedEvents() initialize()source public
initialize( )
Метод начальной установки.
Реализуйте этот метод, чтобы избежать необходимости перезаписи конструктора и вызова родительского класса.
invokeAction()source public
invokeAction( )
Выполняет действие контроллера. Проверяет, что действие существует и не является закрытым.
Возвращает
смешанныйРезультат ответа.
Исключения
ReflectionExceptionisAction()source public
isAction( string $action )
Метод проверки доступности действия из URL.
Переопределите этот метод, чтобы изменить методы контроллера, которые могут быть доступны. По умолчанию запрещает доступ ко всем методам в Cake\Controller\Controller и разрешает доступ ко всем публичным методам всех подклассов этого класса.
Параметры
- строка
$action - Действие для проверки.
Возвращает
логическое значениеДоступно ли действие из URL.
Исключения
ReflectionExceptionisAutoRenderEnabled()source public
isAutoRenderEnabled( )
Возвращает true, если действие должно быть автоматически отрисовано.
Возвращает
логическое значениеС тех пор как
3.6.0loadComponent()source public
loadComponent( string $name , array $config = [] )
Добавить компонент в реестр контроллера.
Этот метод также установит компонент в свойство. Например:
$this->loadComponent('Acl.Acl'); В результате будет установлено свойство Toolbar.
Параметры
- строка
$name - Имя компонента, который нужно загрузить.
- массив
$configoptional [] - Настройка компонента.
Возвращает
Cake\Controller\ComponentИсключения
Исключениеpaginate()source public
paginate( Cake\ORM\Table|string|Cake\ORM\Query|null $object = null , array $settings = [] )
Обрабатывает постраничную навигацию записей в объектах Table.
Загрузит указанный объект Table и заставит компонент PaginatorComponent постранично разбить запрос, используя дату запроса и настройки, определённые в $this->paginate.
Этот метод также сделает PaginatorHelper доступным в представлении.
Параметры
-
Cake\ORM\Table|string|Cake\ORM\Query|null$objectнеобязательный null Таблица для постраничной навигации (например: экземпляр Table, 'ИмяТаблицы' или объект Query).
- array
$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.
Параметры
- string|array
$url Строка или массив URL, указывающий на другую локацию в приложении или абсолютный URL.
- integer
$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, сославшись на текущий запрос.
Параметры
- string|array|null
$defaultнеобязательный null - URL по умолчанию для использования, если HTTP_REFERER не может быть прочитан из заголовков.
- boolean
$localнеобязательный false - Если true, ограничивать URL ссылок на локальный сервер.
Возвращает
stringURL ссылки
render()source public
render( string|null $view = null , string|null $layout = null )
Инициализирует правильный класс представления, передает ему данные и использует его для вывода представления.
Параметры
- string|null
$viewнеобязательный null - Представление для использования при рендеринге
- string|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); Параметры
- string
$action Новое действие, к которому происходит 'перенаправление'. Все остальные параметры, переданные в этот метод, будут переданы как параметры новому действию.
- ...
$args - $args Аргументы, переданные в действие
Возвращает
mixedВозвращает значение, возвращённое вызванным действием
setName()source public
setName( string $name )
Устанавливает имя контроллера.
Параметры
- string
$name - Имя контроллера.
Возвращает
$this
Since
3.6.0setPlugin()source public
setPlugin( string $name )
Устанавливает имя плагина.
Параметры
- string
$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 )
Обёртка для создания и отправки событий.
Возвращает отправленное событие.
Параметры
- string
$name - Имя события.
- array|null
$dataнеобязательный null Любое значение, которое вы хотите передать с этим событием, чтобы слушатели могли его прочитать.
- object|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 - менеджер событий для установки
Возвращает
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().
Параметры
- смешанный
$msg - Сообщение журнала.
- целое число/строка
$levelнеобязательно LogLevel::ERROR - Уровень ошибки.
- строка/массив
$contextнеобязательно [] - Дополнительные данные журнала, относящиеся к этому сообщению.
Возвращаемое значение
booleanУспешность записи в журнал.
Методы, используемые из Cake\Utility\MergeVariablesTrait
_mergeProperty()source protected
_mergeProperty( string $property , array $parentClasses , array $options )
Объединение одного свойства со значениями, объявленными во всех родительских классах.
Параметры
- строка
$property - Имя объединяемого свойства.
- массив
$parentClasses - Массив классов, которые вы хотите объединить.
- массив
$options - Параметры для объединения свойства, см. _mergeVars().
_mergePropertyData()source protected
_mergePropertyData( array $current , array $parent , boolean $isAssoc )
Объединение каждого из ключей в свойстве.
Параметры
- массив
$current - Текущее объединенное значение.
- массив
$parent - Значение родительского класса.
- булево
$isAssoc - Выполнять ли слияние в ассоциативном режиме.
Возвращаемое значение
смешанныйОбновленное значение.
_mergeVars()source protected
_mergeVars( array $properties , array $options = [] )
Объединение списка $properties со всеми родительскими классами текущего класса.
Параметры:
-
associative- Список свойств, которые должны обрабатываться как ассоциативные массивы. Свойства в этом списке будут переданы через Hash::normalize() перед объединением.
Параметры
- массив
$properties - Массив свойств и стратегии слияния для них.
- массив
$optionsнеобязательно [] - Параметры для объединения свойств.
Методы, используемые из Cake\Datasource\ModelAwareTrait
_setModelClass()source protected
_setModelClass( string $name )
Установка свойств modelClass и modelKey на основе соглашений.
Если свойства уже установлены, они не будут перезаписаны.
Параметры
- строка
$name - Имя класса.
getModelType()source public
getModelType( )
Получение типа модели, который будет использоваться этим классом.
Возвращаемое значение
строкаloadModel()source public
loadModel( string|null $modelClass = null , string|null $modelType = null )
Загрузка и построение объектов репозитория, необходимых для этого объекта.
Обычно используется для загрузки объектов ORM Table, как требуется. Также может использоваться для загрузки других типов объектов репозитория, которые использует ваше приложение.
Если поставщик репозитория не возвращает объект, будет выброшено исключение MissingModelException.
Параметры
- строка|null
$modelClassнеобязательно null Имя класса модели для загрузки. По умолчанию $this->modelClass. Имя может быть псевдонимом, как
'Post'или FQCN, какApp\Model\Table\PostsTable::class.- строка|null
$modelTypeнеобязательно null - Тип репозитория для загрузки. По умолчанию значение modelType().
Возвращаемое значение
Cake\Datasource\RepositoryInterfaceСозданный экземпляр модели.
Исключения
Cake\Datasource\Exception\MissingModelExceptionЕсли класс модели не найден.
InvalidArgumentException
При использовании типа, который не был зарегистрирован.
UnexpectedValueException
Если не определён тип модели
modelFactory()source public
modelFactory( string $type , callable $factory )
Переопределение существующей вызываемой функции для генерации репозиториев заданного типа.
Параметры
- строка
$type - Имя типа репозитория, для которого предназначена функция фабрики.
- вызываемая функция
$factory - Функция фабрики, используемая для создания экземпляров.
modelType()source public deprecated
modelType( string|null $modelType = null )
Установить или получить тип модели, который будет использоваться этим классом.
Устаревшее
3.5.0 Используйте getModelType()/setModelType() вместо этого.Параметры
- строка|null
$modelTypeнеобязательно null - Тип модели или null для получения текущего.
Возвращаемое значение
строка|Cake\Datasource\ModelAwareTrait$this
setModelType()source public
setModelType( string $modelType )
Установить тип модели, который будет использоваться этим классом.
Параметры
- строка
$modelType - Тип модели
Возвращаемое значение
$this
Методы, используемые из Cake\Routing\RequestActionTrait
requestAction()source public deprecated
requestAction( string|array $url , array $extra = [] )
Вызывает метод контроллера из любой точки. Может использоваться для связи контроллеров или подключения плагинов к основному приложению. requestAction может возвращать отрисованный вид или значение, возвращаемое действием контроллера.
Под капотом этот метод использует Router::reverse() для преобразования параметра $url в строковый URL. Вы должны использовать форматы URL, совместимые с Router::reverse().
Примеры
Базовый пример получения возвращаемого значения действия контроллера:
$variables = $this->requestAction('/articles/popular'); Базовый пример requestAction для получения отрисованной страницы без макета.
$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. Если вы хотите переопределить эти значения для действия requestAction, вы можете указать их значения:
$vars = $this->requestAction('/articles/popular', [
'environment' => ['CONTENT_TYPE' => 'application/json']
]); Передача сессии
По умолчанию действия, вызываемые этим методом, будут использовать стандартный объект сессии. Если вам нужно использовать определённую инстанцию сессии, вы должны указать её.
$vars = $this->requestAction('/articles/popular', [
'session' => new Session($someSessionConfig)
]); Устарело
3.3.0 Следует переписать код, используя View Cells вместо этого метода.Параметры
- строка|массив
$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 deprecated
viewOptions( string|array|null $options = null , boolean $merge = true )
Получить/установить допустимые параметры представления в свойстве _validViewOptions объекта. Свойство создаётся как пустой массив, если оно не задано. Если вызывается без параметров, возвращается текущий список допустимых параметров представления. См. createView().
Устарело
3.7.0 Используйте ViewBuilder::setOptions() или любой из методов-сеттеров вместо этого.Параметры
- строка|массив|null
$optionsнеобязательно null - Строка или массив строк, которые будут добавлены к _validViewOptions.
- булево
$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Устарело
3.7.0 Используйте ViewBuilder::setOptions() или любой из методов-сеттеров вместо этого.[
'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 массив
Содержит все переданные параметры.
Устарело
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.8/class-Cake.Controller.Controller.html