Класс ErrorController
Контроллер обработки ошибок
Контроллер, используемый ErrorHandler для отображения страниц ошибок.
- Cake\Controller\Controller implements Cake\Event\EventListenerInterface, Cake\Event\EventDispatcherInterface uses Cake\Event\EventDispatcherTrait , Cake\ORM\Locator\LocatorAwareTrait , Cake\Log\LogTrait , Cake\Utility\MergeVariablesTrait , Cake\Datasource\ModelAwareTrait , Cake\Routing\RequestActionTrait , Cake\View\ViewVarsTrait
-
Cake\Controller\ErrorController
Наследуемые магические свойства
Наследуемые свойства
-
View,_components,_responseClass,_validViewOptions,autoRender,components,helpers,name,paginate,passedArgs,plugin,request,response_eventClass,_eventManager_tableLocator_modelFactories,_modelType,modelClass_viewBuilder,viewClass,viewVars
Краткое описание методов
- beforeRender() publicОбработчик beforeRender.
- initialize() publicМетод инициализации.
Подробное описание методов
beforeRender()source public
beforeRender( Cake\Event\Event $event )
Обработчик beforeRender.
Параметры
-
Cake\Event\Event$event - Событие.
Переопределяет
Cake\Controller\Controller::beforeRender() initialize()source public
initialize( )
Метод инициализации.
Переопределяет
Cake\Controller\Controller::initialize() Методы, унаследованные от Cake\Controller\Controller
__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 - Экземпляр события
Возвращает
boolean|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 - Экземпляр события
Возвращает
boolean|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 вызывается при вызове метода перенаправления контроллера, но до любого дальнейшего действия.
Если событие остановлено, контроллер не будет продолжать перенаправлять запрос. Переменные $url и $status имеют то же значение, что и для метода контроллера. Можно установить результат события в экземпляр ответа или изменить место перенаправления, используя экземпляр ответа контроллера.
Параметры
-
Cake\Event\Event$event - Экземпляр события
- string|array
$url Строка или массив, указывающие на другой URL-адрес внутри приложения, или абсолютный URL-адрес.
-
Cake\Http\Response$response - Объект ответа.
Возвращает
boolean|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$componentsнеобязательно null - Реестр компонентов.
Возвращает
arraydisableAutoRender()source public
disableAutoRender( )
Отключить автоматическое отображение действия.
Возвращает
$this
С момента
3.6.0enableAutoRender()source public
enableAutoRender( )
Включить автоматическое отображение действия.
Возвращает
$this
С момента
3.6.0getPlugin()source public
getPlugin( )
Возвращает имя плагина.
Возвращает
string|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( )
Возвращает список всех событий, которые будут срабатывать в контроллере во время его жизненного цикла. Вы можете переопределить эту функцию, чтобы добавить свои собственные обработчики событий.
Возвращает
arrayРеализация
Cake\Event\EventListenerInterface::implementedEvents() 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
$configoptional [] - Конфигурация компонента.
Возвращает
Cake\Controller\ComponentВыбрасывает
Exceptionpaginate()source public
paginate( Cake\ORM\Table|string|Cake\ORM\Query|null $object = null , array $settings = [] )
Обрабатывает постраничный вывод записей в объектах таблиц.
Загрузит связанный объект таблицы и выполнит постраничный вывод запроса, используя данные запроса и настройки, определенные в $this->paginate.
Этот метод также сделает PaginatorHelper доступным в представлении.
Параметры
-
Cake\ORM\Table|string|Cake\ORM\Query|null$objectoptional null Таблица для постраничного вывода (например: экземпляр таблицы, 'ИмяТаблицы' или объект запроса)
- array
$settingsoptional [] - Настройки/конфигурация, используемые для постраничного вывода.
Возвращает
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
$statusoptional 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
$defaultoptional null - URL по умолчанию, если HTTP_REFERER не может быть прочитан из заголовков
- boolean
$localoptional false - Если true, ограничит ссылки на URL локального сервера
Возвращает
stringURL ссылки, отправившей запрос
render()source public
render( string|null $view = null , string|null $layout = null )
Создаёт правильный класс представления, передаёт ему данные и использует его для рендеринга выходных данных представления.
Параметры
- string|null
$viewoptional null - Представление для рендеринга
- string|null
$layoutoptional 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
С момента
3.6.0setPlugin()source public
setPlugin( string $name )
Устанавливает имя плагина.
Параметры
- string
$name - Имя плагина.
Возвращает
$this
С момента
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
С тех пор
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 устаревший
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 - устанавливаемый 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 устаревший
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
- строка|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 устарело
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 устарело
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 можно передать, используя ключ 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 Вы должны переписать свой код, чтобы использовать 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
viewOptions( string|array|null $options = null , boolean $merge = true )
Получить/установить допустимые опции представления в свойстве _validViewOptions объекта. Свойство создаётся как пустой массив, если оно не задано. Если вызывается без параметров, возвращается текущий список допустимых опций представления. См. createView().
Параметры
- строка|массив|null
$optionsнеобязательно null - строка или массив строк, которые нужно добавить в _validViewOptions.
- boolean
$mergeнеобязательно true Объединять или перезаписывать существующие допустимые опции представления. По умолчанию
true.
Возвращает
массивОбновлённые опции представления в виде массива.
Магические методы, унаследованные от Cake\Controller\Controller
isAuthorized() |
Магические методы, унаследованные от Cake\Event\EventDispatcherInterface
getEventManager() |
© 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.ErrorController.html