Класс ErrorController
Контроллер обработки ошибок
Контроллер, используемый ErrorHandler для рендеринга представлений об ошибках.
- 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
-
Cake\Controller\ErrorController
Подробное описание методов
__constructsource public
__construct( Cake\Network\Request|null $request null , Cake\Network\Response|null $response null )
Конструктор
Параметры
-
Cake\Network\Request|null$requestнеобязательный null - Экземпляр запроса.
-
Cake\Network\Response|null$responseнеобязательный null - Экземпляр ответа.
Переопределяет
Cake\Controller\Controller::__construct() beforeRendersource public
beforeRender( Cake\Event\Event $event )
Обработчик перед рендерингом.
Параметры
-
Cake\Event\Event$event - Событие.
Переопределяет
Cake\Controller\Controller::beforeRender() Методы, унаследованные от Cake\Controller\Controller
__getsource public
__get( string $name )
Магический аксессор для автоматической загрузки моделей.
Параметры
- строка
$name - Имя свойства
Возвращает
boolean|objectЭкземпляр модели или false
__setsource public
__set( string $name , mixed $value )
Магический установщик для удалённых свойств.
Параметры
- строка
$name - Имя свойства.
- смешанное
$value - Значение для установки.
_loadComponentssource protected
_loadComponents( )
Загружает определённые компоненты с помощью фабрики компонентов.
_mergeControllerVarssource protected
_mergeControllerVars( )
Объединение компонентов, переменных хелперов из родительских классов.
_viewPathsource protected
_viewPath( )
Получение viewPath на основе имени контроллера и префикса запроса.
Возвращает
stringстрока
afterFiltersource public
afterFilter( Cake\Event\Event $event )
Вызывается после выполнения и рендеринга действия контроллера.
Параметры
-
Cake\Event\Event$event - Экземпляр события
Возвращает
Cake\Network\Response|null\Cake\Network\Response|null
Ссылка
http://book.cakephp.org/3.0/ru/controllers.html#request-life-cycle-callbacksbeforeFiltersource public
beforeFilter( Cake\Event\Event $event )
Вызывается перед действием контроллера. Вы можете использовать этот метод для настройки и настройки компонентов или выполнения логики, которая должна выполняться перед каждым действием контроллера.
Параметры
-
Cake\Event\Event$event - Экземпляр события
Возвращает
Cake\Network\Response|null\Cake\Network\Response|null
Ссылка
http://book.cakephp.org/3.0/ru/controllers.html#request-life-cycle-callbacksbeforeRedirectsource public
beforeRedirect( Cake\Event\Event $event , string|array $url , Cake\Network\Response $response )
Метод beforeRedirect вызывается, когда вызывается метод перенаправления контроллера, но перед любыми дальнейшими действиями.
Если событие остановлено, контроллер не будет продолжать перенаправление запроса. Переменные $url и $status имеют то же значение, что и для метода контроллера. Вы можете установить результат события в экземпляр ответа или изменить местоположение перенаправления, используя экземпляр ответа контроллера.
Параметры
-
Cake\Event\Event$event - Экземпляр события
- строка|массив
$url - Строка или массив, основанные на URL, указывающие на другое местоположение в приложении, или абсолютный URL
-
Cake\Network\Response$response - Объект ответа.
Возвращает
Cake\Network\Response|null\Cake\Network\Response|null
Ссылка
http://book.cakephp.org/3.0/ru/controllers.html#request-life-cycle-callbackscomponentssource public
components( Cake\Controller\ComponentRegistry|null $components null )
Получить реестр компонентов для данного контроллера.
Если вызывается с первым параметром, он будет установлен в качестве свойства контроллера $this->_components
Параметры
-
Cake\Controller\ComponentRegistry|null$componentsнеобязательный null - Реестр компонентов.
Возвращает
Cake\Controller\ComponentRegistry\Cake\Controller\ComponentRegistry
implementedEventssource public
implementedEvents( )
Возвращает список всех событий, которые будут происходить в контроллере в течение его жизненного цикла. Вы можете переопределить эту функцию, чтобы добавить свои собственные обработчики событий
Возвращает
arrayмассив
Реализация
Cake\Event\EventListenerInterface::implementedEvents() initializesource public
initialize( )
Метод начальной инициализации.
Реализуйте этот метод, чтобы избежать необходимости переписывать конструктор и вызывать родителя.
invokeActionsource public
invokeAction( )
Отправляет действие контроллера. Проверяет, что действие существует и не является закрытым.
Возвращает
mixedРезультирующий ответ.
Выбрасывает
LogicExceptionКогда запрос не задан.
Cake\Controller\Exception\MissingActionExceptionКогда действия не определены или недоступны.
isActionsource public
isAction( string $action )
Метод для проверки того, доступно ли действие из URL.
Переопределите этот метод, чтобы изменить методы контроллера, которые могут быть достигнуты. По умолчанию доступ запрещён для всех методов, определённых в Cake\Controller\Controller, и разрешён для всех публичных методов во всех подклассах этого класса.
Параметры
- строка
$action - Действие для проверки.
Возвращает
booleanДоступно ли действие из URL.
loadComponentsource public
loadComponent( string $name , array $config [] )
Добавляет компонент в реестр контроллера.
Этот метод также установит компонент в свойство. Например:
$this->loadComponent('Acl.Acl');
Приведет к установке свойства Toolbar.
Параметры
- строка
$name - Имя компонента для загрузки.
- массив
$configнеобязательно [] - Настройка компонента.
Возвращает
Cake\Controller\Component\Cake\Controller\Component
paginatesource public
paginate( Cake\ORM\Table|string|Cake\ORM\Query|null $object null )
Обрабатывает пагинацию записей в объектах таблицы.
Загрузит связанный объект таблицы и выполнит пагинацию запроса с помощью данных запроса и настроек, определенных в $this->paginate.
Этот метод также сделает PaginatorHelper доступным в представлении.
Параметры
-
Cake\ORM\Table|строка|Cake\ORM\Query|null$objectнеобязательно null - Таблица для пагинации (например: экземпляр таблицы, 'ИмяТаблицы' или объект запроса)
Возвращает
Cake\ORM\ResultSetРезультаты запроса
Выбрасывает
RuntimeExceptionКогда не удалось найти совместимый объект таблицы.
Ссылка
http://book.cakephp.org/3.0/ru/controllers.html#Controller::paginateredirectsource public
redirect( string|array $url , integer $status 302 )
Перенаправляет на указанный $url, после отключения $this->autoRender. Выполнение скрипта прекращается после перенаправления.
Параметры
- строка|массив
$url - Строка или массив, представляющий URL, указывающий на другую локацию в приложении или абсолютный URL.
- целое число
$statusнеобязательно 302 - Код HTTP-статуса (например: 301)
Возвращает
Cake\Network\Response|null\Cake\Network\Response|null
Ссылка
http://book.cakephp.org/3.0/ru/controllers.html#Controller::redirectreferersource public
referer( string|null $default null , boolean $local false )
Возвращает URL-адрес, направивший на текущий запрос.
Параметры
- строка|null
$defaultнеобязательно null - URL по умолчанию, если HTTP_REFERER не может быть считан из заголовков.
- логическое значение
$localнеобязательно false - Если true, URL ссылающихся страниц ограничены локальным сервером.
Возвращает
stringСсылка на URL
rendersource public
render( string $view null , string $layout null )
Инициализирует правильный класс представления, передает ему данные и использует его для отрисовки вывода представления.
Параметры
- строка
$viewнеобязательно null - Представление для отрисовки.
- строка
$layoutнеобязательно null - Макет для использования.
Возвращает
Cake\Network\ResponseОбъект ответа, содержащий отрисованное представление.
Ссылка
http://book.cakephp.org/3.0/ru/controllers.html#rendering-a-viewsetActionsource public
setAction( string $action )
Внутренне перенаправляет одно действие на другое. Не выполняет другой HTTP-запрос, в отличие от Controller::redirect()
Примеры:
setAction('another_action'); setAction('action_with_parameters', $parameter1);
Параметры
- строка
$action - Новое действие, на которое происходит «перенаправление». Все остальные параметры, переданные в этот метод, будут переданы в качестве параметров новому действию.
Возвращает
mixedВозвращает возвращаемое значение вызываемого действия
setRequestsource public
setRequest( Cake\Network\Request $request )
Устанавливает объекты запроса и настраивает ряд свойств контроллера на основе содержимого запроса. Контроллер выступает в качестве прокси для определенных переменных представления, которые также должны быть обновлены здесь. Устанавливаемые свойства:
- $this->request - В параметр $request
- $this->plugin - В $request->params['plugin']
- $this->passedArgs - Аналогично $request->params['pass]
- View::$plugin - $this->plugin
Параметры
-
Cake\Network\Request$request - Экземпляр запроса.
shutdownProcesssource public
shutdownProcess( )
Выполняет различные процессы завершения работы для этого контроллера. Вызывает компоненты и обратные вызовы контроллера в правильном порядке.
- вызывает обратный вызов компонента
shutdown - вызывает метод контроллера
afterFilter
Возвращает
Cake\Network\Response|null\Cake\Network\Response|null
startupProcesssource public
startupProcess( )
Выполняет процесс запуска для этого контроллера. Вызывает компоненты и обратные вызовы контроллера в правильном порядке.
- Инициализирует компоненты, вызывая их обратный вызов
initialize - Вызывает метод контроллера
beforeFilter. - вызывает методы компонента
startup
Возвращает
Cake\Network\Response|null\Cake\Network\Response|null
Методы, используемые из Cake\Event\EventDispatcherTrait
dispatchEventsource public
dispatchEvent( string $name , array|null $data null , object|null $subject null )
Обёртка для создания и отправки событий.
Возвращает событие, которое было обработано.
Параметры
- строка
$name - Название события.
- массив|null
$dataнеобязательно null - Любое значение, которое вы хотите передать с этим событием, чтобы оно могло быть прочитано обработчиками.
- объект|null
$subjectнеобязательно null - Объект, к которому относится это событие ($this по умолчанию).
Возвращает
Cake\Event\Event\Cake\Event\Event
Реализация
Cake\Event\EventDispatcherInterface::dispatchEvent() eventManagersource public
eventManager( Cake\Event\EventManager $eventManager null )
Возвращает экземпляр менеджера Cake\Event\EventManager для этого объекта.
Вы можете использовать этот экземпляр для регистрации новых обработчиков или обратных вызовов событий объекта, или для создания собственных событий и их запуска.
Параметры
-
Cake\Event\EventManager$eventManagerнеобязательно null - eventManager для установки
Возвращает
Cake\Event\EventManager\Cake\Event\EventManager
Реализация
Cake\Event\EventDispatcherInterface::eventManager() Методы, используемые из Cake\ORM\Locator\LocatorAwareTrait
tableLocatorsource public
tableLocator( Cake\ORM\Locator\LocatorInterface $tableLocator null )
Устанавливает локатор таблицы. Если параметры не переданы, возвращается текущий используемый локатор.
Параметры
-
Cake\ORM\Locator\LocatorInterface$tableLocatorнеобязательно null - Экземпляр LocatorInterface.
Возвращает
Cake\ORM\Locator\LocatorInterface\Cake\ORM\Locator\LocatorInterface
Методы, используемые из Cake\Log\LogTrait
logsource public
log( mixed $msg , integer|string $level LogLevel::ERROR , string|array $context [] )
Удобный метод для записи сообщения в журнал. Подробнее о записи в журналы см. Log::write().
Параметры
- смешанный
$msg - Сообщение для записи в журнал.
- целое число|строка
$levelнеобязательно LogLevel::ERROR - Уровень ошибки.
- строка|массив
$contextнеобязательно [] - Дополнительные данные журнала, относящиеся к этому сообщению.
Возвращает
booleanРезультат записи в журнал.
Методы, используемые из Cake\Utility\MergeVariablesTrait
_mergePropertysource protected
_mergeProperty( string $property , array $parentClasses , array $options )
Объединить одно свойство со значениями, объявленными во всех родительских классах.
Параметры
- строка
$property - Имя свойства, подлежащего объединению.
- массив
$parentClasses - Массив классов, которые необходимо объединить.
- массив
$options - Параметры для объединения свойства, см. _mergeVars()
_mergePropertyDatasource protected
_mergePropertyData( array $current , array $parent , boolean $isAssoc )
Объединить каждый из ключей в свойстве.
Параметры
- массив
$current - Текущее объединённое значение.
- массив
$parent - Значение родительского класса.
- булево
$isAssoc - Выполнять ли объединение в ассоциативном режиме.
Возвращает
mixedОбновлённое значение.
_mergeVarssource protected
_mergeVars( array $properties , array $options [] )
Объединить список $properties со всеми родительскими классами текущего класса.
Параметры:
-
associative- Список свойств, которые должны обрабатываться как ассоциативные массивы. Свойства в этом списке будут переданы через Hash::normalize() перед объединением.
Параметры
- массив
$properties - Массив свойств и стратегии их объединения.
- массив
$optionsнеобязательно [] - Параметры для объединения свойств.
Методы, используемые из Cake\Datasource\ModelAwareTrait
_setModelClasssource protected
_setModelClass( string $name )
Установить свойства modelClass и modelKey на основе соглашений.
Если свойства уже заданы, они не будут перезаписаны.
Параметры
- строка
$name - Имя класса.
loadModelsource public
loadModel( string|null $modelClass null , string|null $modelType null )
Загружает и создаёт объекты репозитория, необходимые этому объекту.
Обычно используется для загрузки объектов ORM Table по мере необходимости. Также может использоваться для загрузки других типов объектов репозитория, используемых вашим приложением.
Если поставщик репозитория не возвращает объект, будет выброшено исключение MissingModelException.
Параметры
- строка|null
$modelClassнеобязательно null - Имя класса модели для загрузки. По умолчанию $this->modelClass
- строка|null
$modelTypeнеобязательно null - Тип репозитория для загрузки. По умолчанию значение modelType().
Возвращает
objectСозданный экземпляр модели.
Исключение
Cake\Datasource\Exception\MissingModelExceptionЕсли класс модели не найден.
InvalidArgumentExceptionПри использовании типа, который не зарегистрирован.
UnexpectedValueExceptionЕсли тип модели не определён
modelFactorysource public
modelFactory( string $type , callable $factory )
Зарегистрировать вызываемый объект для создания репозиториев заданного типа.
Параметры
- строка
$type - Имя типа репозитория, для которого предназначена функция-фабрика.
- вызываемый объект
$factory - Функция-фабрика, используемая для создания экземпляров.
modelTypesource public
modelType( string|null $modelType null )
Установить или получить тип модели, который будет использоваться этим классом.
Параметры
- строка|null
$modelTypeнеобязательно null - Тип модели или null для получения текущего
Возвращает
string|$this$this
Методы, используемые из Cake\Routing\RequestActionTrait
requestActionsource 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. Если вы хотите переопределить эти значения для request action, вы можете указать значения:
$vars = $this->requestAction('/articles/popular', [ 'environment' => ['CONTENT_TYPE' => 'application/json'] ]);
Передача сессии
По умолчанию действия, запускаемые с помощью этого метода, будут использовать стандартный объект сессии. Если вам нужен определенный экземпляр сессии, вам необходимо его указать.
$vars = $this->requestAction('/articles/popular', [ 'session' => new Session($someSessionConfig) ]);
Параметры
- строка|массив
$url - Строка или массив-URL. В отличие от других массивов URL в CakePHP, этот URL не будет автоматически обрабатывать переданные аргументы в параметре $url.
- массив
$extraнеобязательно [] - Если массив включает ключ "return", он устанавливает autoRender в true. Также может использоваться для отправки данных GET/POST и передачи аргументов.
Возвращает
mixedБулево true или false при успехе/неудачи, или содержимое отрисованного действия, если в $extra задан ключ 'return'.
Методы, используемые из Cake\View\ViewVarsTrait
createViewsource public
createView( string|null $viewClass null )
Создаёт экземпляр класса представления на основе текущей конфигурации.
Параметры
- строка|null
$viewClassнеобязательно null - Необязательное имя класса представления с пространством имён для создания экземпляра.
Возвращает
Cake\View\View\Cake\View\View
Исключение
Cake\View\Exception\MissingViewExceptionЕсли класс представления не был найден.
setsource public
set( string|array $name , string|array|null|boolean $value null )
Сохраняет переменную или ассоциативный массив переменных для использования внутри шаблона.
Параметры
- строка|массив
$name - Строка или массив данных.
- строка|массив|null|булево
$valueнеобязательно null - Значение в случае, если $name является строкой (которая затем работает как ключ). Не используется, если $name является ассоциативным массивом, в противном случае служит значениями для ключей $name.
Возвращает
mixed$this
viewBuildersource public
viewBuilder( )
Получить используемый билдер представлений.
Возвращает
Cake\View\ViewBuilder\Cake\View\ViewBuilder
viewOptionssource public
viewOptions( string|array|null $options null , boolean $merge true )
Получить/установить допустимые параметры представления в свойстве объекта _validViewOptions. Свойство создается как пустой массив, если оно не задано. Если вызывается без параметров, возвращается текущий список допустимых параметров представления. См. createView().
Параметры
- строка|массив|null
$optionsнеобязательно null - строка или массив строк, которые нужно добавить в _validViewOptions.
- булево
$mergeнеобязательно true - Объединять или перезаписывать существующие допустимые параметры представления. По умолчанию
true.
Возвращает
arrayОбновлённые параметры представления в виде массива.
Свойства, унаследованные от Cake\Controller\Controller
$Viewsource
public Cake\View\View
Экземпляр представления, созданного во время рендеринга. Не будет установлен до вызова Controller::render().
Устарело
3.1.0 Используйте viewBuilder() вместо этого.$_componentssource
protected Cake\Controller\ComponentRegistry
Экземпляр ComponentRegistry, используемый для создания компонентов.
null $_responseClasssource
protected string
Имя класса, используемого для создания объекта ответа.
'Cake\Network\Response' $_validViewOptionssource
protected array
Эти свойства контроллера будут переданы от контроллера к представлению в качестве опций.
См.
Cake\View\View[
'passedArgs'
] $autoRendersource
public boolean
Установите в значение true, чтобы автоматически рендерить представление после логики действия.
true $componentssource
public array
Массив, содержащий имена компонентов, используемых этим контроллером. Имена компонентов не должны содержать часть "Component" имени класса.
Пример:
public $components = ['RequestHandler', 'Acl'];
Ссылка
http://book.cakephp.org/3.0/ru/controllers/components.html[]
$helperssource
public array
Массив, содержащий имена помощников, используемых этим контроллером. Элементы массива не должны содержать часть "Helper" имени класса.
Пример:
public $helpers = ['Form', 'Html', 'Time'];
Ссылка
http://book.cakephp.org/3.0/ru/controllers.html#configuring-helpers-to-load[]
$namesource
public string
Имя этого контроллера. Имена контроллеров множественного числа, названные по модели, которую они обрабатывают.
Автоматически устанавливается с помощью соглашений в Controller::__construct().
null $paginatesource
public array
Настройки для пагинации.
Используется для предварительной настройки параметров пагинации для различных таблиц, которые будет страницировать ваш контроллер.
См.
Cake\Controller\Component\PaginatorComponent[]
$passedArgssource
public array
Содержит все переданные параметры.
Устарело
3.1.0 Используйте$this->request->params['pass'] вместо этого.[]
$requestsource
public Cake\Network\Request
Экземпляр объекта Cake\Network\Request, содержащий информацию о текущем запросе. Этот объект содержит всю информацию о запросе и несколько методов для считывания дополнительной информации о запросе.
Ссылка
http://book.cakephp.org/3.0/ru/controllers/request-response.html#request$responsesource
public Cake\Network\Response
Экземпляр объекта Response, содержащий информацию о предстоящем ответе.
Ссылка
http://book.cakephp.org/3.0/ru/controllers/request-response.html#responseСвойства, используемые из Cake\Event\EventDispatcherTrait
$_eventClasssource
protected string
Имя по умолчанию класса для новых объектов событий.
'\Cake\Event\Event' $_eventManagersource
protected Cake\Event\EventManager
Экземпляр Cake\Event\EventManager, используемый этим объектом для отправки внутренних событий.
null Свойства, используемые из Cake\ORM\Locator\LocatorAwareTrait
Свойства, используемые из Cake\Datasource\ModelAwareTrait
$modelClasssource
public string
Основное имя класса модели этого объекта. Должно быть в форме множественного числа. CakePHP не будет изменять имя.
Пример: для объекта с именем 'Комментарии', modelClass будет 'Комментарии'. Классы плагинов должны использовать имена типа Plugin.Comments для правильной загрузки моделей из соответствующего плагина.
Свойства, используемые из Cake\View\ViewVarsTrait
$viewClasssource
public string
Имя класса представления по умолчанию.
Устарело
3.1.0 Используйте$this->viewBuilder()->className() вместо него.null Магические свойства, унаследованные от Cake\Controller\Controller
$Authsource
$Cookiesource
$Csrfsource
$Flashsource
$Paginatorsource
$RequestHandlersource
$Securitysource
© 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/3.1/class-Cake.Controller.ErrorController.html