Класс Controller
Класс контроллера приложения для организации бизнес-логики. Предоставляет базовые функции, такие как отображение представлений внутри макетов, автоматическую доступность моделей, перенаправление, обратные вызовы и многое другое.
Контроллеры должны предоставлять ряд методов «действия». Это публичные методы контроллера, которые не имеют префикса «_» и не являются частью Controller. Каждое действие служит конечной точкой для выполнения конкретного действия с ресурсом или набором ресурсов. Например: добавление или редактирование нового объекта или вывод списка объектов.
Вы можете получить доступ к параметрам запроса, используя $this->request. Объект запроса содержит все POST, GET и FILES, которые были частью запроса.
После выполнения необходимых действий контроллеры отвечают за создание ответа. Обычно это представление, сгенерированное из View, или, возможно, перенаправление на другое действие контроллера. В любом случае $this->response позволяет вам управлять всеми аспектами ответа.
Контроллеры создаются диспетчером на основе параметров запроса и маршрутизации. По умолчанию контроллеры и действия используют стандартные имена. Например, /posts/index отображается как PostsController::index(). Вы можете переопределить URL-адреса с помощью Router::connect().
- Объект
-
Controller реализует CakeEventListener
Непосредственные подклассы
Косвенные подклассы
Ссылка: http://book.cakephp.org/2.0/ru/controllers.html
Авторские права: Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
Лицензия: MIT License
Расположение: Cake/Controller/Controller.php
Краткое описание свойств
- Экземпляр ComponentCollection, используемый для обработки обратных вызовов.
$Componentspublic -
$ViewpublicЭкземпляр View, созданный во время отображения. Не будет задан до вызова Controller::render().
-
$_eventManagerprotectedЭкземпляр CakeEventManager, используемый этим контроллером для отправки внутренних событий.
-
$_mergeParentprotectedstringИмя класса родительского класса, который вы хотите объединить. Обычно это AppController, но вы можете объединить переменные с другим родительским классом.
-
$_responseClassprotectedИмя класса для создания объекта ответа.string -
$autoLayoutpublicУстанавливается в true для автоматического отображения макета вокруг представлений.boolean -
$autoRenderpublicbooleanУстанавливается в true для автоматического отображения представления после логики действия.
-
$cacheActionpublicmixedИспользуется для определения методов контроллера, которые будут кэшированы. Для кэширования отдельного действия значение устанавливается в массив, содержащий ключи, соответствующие именам действий, и значения, обозначающие время истечения срока действия кэша (в секундах).
-
$componentspublicarrayМассив, содержащий имена компонентов, используемых этим контроллером. Имена компонентов не должны содержать часть «Component» имени класса.
-
$extpublicРасширение файла шаблонов представления. По умолчанию соответствует стандартному для CakePHP «.ctp».string -
$helperspublicmixedМассив, содержащий имена помощников, используемых этим контроллером. Элементы массива не должны содержать части «Helper» имени класса.
-
$layoutpublicstringИмя файла макета, в котором будет отображаться представление. Указанное имя — имя файла макета в /app/View/Layouts без расширения .ctp.
-
$layoutPathpublicИмя подкаталога макетов, содержащего макеты для этого контроллера.string -
$methodspublicarrayСодержит текущие методы контроллера. Это список всех методов, доступных через URL. Изменение этого массива позволит изменить доступные методы.
-
$modelClasspublicstringОсновное имя класса модели контроллера, результат применения Inflector::singularize() к свойству $name контроллера.
-
$modelKeypublicКлюч имени модели контроллера, версия свойства $modelClass контроллера, преобразованная в нижний регистр с дефисами вместо пробелов.string -
$namepublicИмя этого контроллера. Имена контроллеров являются множественными, названными по модели, которую они обрабатывают.string -
$passedArgspublicСодержит все переданные и именованные параметры.mixed -
$pluginpublicАвтоматически устанавливается в имя плагина.string -
$requestpublicЭкземпляр объекта CakeRequest, содержащий информацию о текущем запросе. Этот объект содержит всю информацию о запросе и несколько методов для чтения дополнительной информации о запросе.
- Экземпляр объекта CakeResponse, содержащий информацию о предстоящем ответе
$responsepublic -
$scaffoldpublicВызывает Scaffoldingmixed -
$usespublicМассив, содержащий имена классов моделей, используемых этим контроллером.mixed -
$validationErrorspublicСодержит любые ошибки проверки, полученные в результате последнего вызова метода validateErrors().array -
$viewpublicstringИмя файла представления для отображения. Указанное имя — имя файла в /app/View/<подкаталог> без расширения .ctp.
-
$viewClasspublicИмя класса View, которому этот контроллер отправляет вывод.string -
$viewPathpublicИмя подкаталога представлений, содержащего представления для этого контроллера.string -
$viewVarspublicСодержит переменные, которые передаются представлению.array
Краткое описание магических свойств
-
$Aclpublic -
$Authpublic -
$Cookiepublic -
$Emailpublic -
$Flashpublic -
$Paginatorpublic -
$RequestHandlerpublic -
$Securitypublic -
$Sessionpublic
Краткое описание методов
- __construct() publicКонструктор.
- __get() public
Обеспечивает обратную совместимость доступа к свойствам объекта запроса. Также предоставляет псевдоним params.
- __isset() public
Обеспечивает обратную совместимость, чтобы избежать проблем с пустыми и isset-псевдонимами свойств. Загружает модели лениво с помощью метода loadModel(), если они объявлены в $uses
- __set() publicОбеспечивает обратную совместимость доступа для установки значений в объект запроса.
- _afterScaffoldSave() protectedПсевдоним для afterScaffoldSave()
- _afterScaffoldSaveError() protectedПсевдоним для afterScaffoldSaveError()
- _beforeScaffold() protectedПсевдоним для beforeScaffold()
- _getScaffold() protectedВозвращает объект scaffolding для динамически генерируемых контроллеров.
- _getViewObject() protectedСоздает экземпляр класса представления на основе свойства контроллера
- _isPrivateAction() protected
Проверяет, помечен ли action запроса как private (с подчеркиванием) или запрос пытается напрямую получить доступ к action с префиксом.
- _mergeControllerVars() protected
Объединяет компоненты, помощники и переменные uses из Controller::$_mergeParent и PluginAppController.
- _mergeUses() protectedВспомогательный метод для объединения свойства $uses.
- _parseBeforeRedirect() protectedПарсит ответ перед перенаправлением.
- _scaffoldError() protectedПсевдоним для scaffoldError()
- afterFilter() publicВызывается после выполнения и отображения действия контроллера.
- afterScaffoldSave() publicЭтот метод должен быть переопределен в дочерних классах.
- afterScaffoldSaveError() publicЭтот метод должен быть переопределен в дочерних классах.
- beforeFilter() public
Вызывается перед действием контроллера. Вы можете использовать этот метод для настройки и настройки компонентов или выполнения логики, которая должна выполняться перед каждым действием контроллера.
- beforeRedirect() public
Метод beforeRedirect вызывается при вызове метода перенаправления контроллера, но перед любыми дальнейшими действиями.
- beforeRender() public
Вызывается после выполнения действия контроллера, но перед рендерингом представления. Вы можете использовать этот метод для выполнения логики или установки переменных представления, которые требуются при каждом запросе.
- beforeScaffold() publicЭтот метод должен быть переопределен в дочерних классах.
- constructClasses() public
Загружает классы моделей на основе свойства uses (см. Controller::loadModel() для получения дополнительной информации). Загружает компоненты и подготавливает их к инициализации.
- disableCache() publicПринудительно отключает кэширование результата текущего запроса в браузере пользователя.
- flash() public
Отображает сообщение пользователю на $pause секунд, затем перенаправляет на $url. Использует flash.ctp в качестве шаблона по умолчанию для сообщения. Не работает, если текущий уровень отладки выше 0.
- getEventManager() public
Возвращает экземпляр менеджера CakeEventManager, обрабатывающий любые обратные вызовы. Вы можете использовать этот экземпляр для регистрации новых слушателей или обратных вызовов для событий контроллера, или создать свои собственные события и вызывать их по мере необходимости.
- header() publicУдобный и объектно-ориентированный метод для CakeResponse::header().
- httpCodes() publicЗапрашивает и устанавливает допустимые коды и сообщения HTTP-ответов.
- implementedEvents() public
Возвращает список всех событий, которые будут срабатывать в контроллере во время его жизненного цикла. Вы можете переопределить эту функцию, чтобы добавить свои собственные обратные вызовы слушателей.
- invokeAction() public
Выполняет действие контроллера. Проверяет, существует ли action и не является ли он private.
- loadModel() public
Загружает и инициализирует модели, необходимые для этого контроллера. Если модель отсутствует, будет выброшено исключение об отсутствии таблицы базы данных, поскольку CakePHP временно генерирует динамические модели.
- paginate() publicОбрабатывает автоматическую постраничную навигацию записей модели.
- postConditions() publicПреобразует данные формы POST в массив условий модели, подходящий для использования в вызове Model::find().
- redirect() public
Перенаправляет на заданный $url после выключения $this->autoRender. Выполнение скрипта прекращается после перенаправления.
- referer() publicВозвращает URL, с которого был получен этот запрос.
- render() publicСоздаёт экземпляр соответствующего класса представления, передаёт ему данные и использует его для рендеринга результата представления.
- scaffoldError() public
Этот метод должен быть переопределён в дочерних классах. В противном случае будет рендериться ошибка scaffold. Метод ДОЛЖЕН возвращать true в дочерних классах.
- set() publicСохраняет переменную для использования в шаблоне представления.
- setAction() publicВнутренне перенаправляет одно действие на другое. Не выполняет другой HTTP-запрос, в отличие от Controller::redirect().
- setRequest() public
Устанавливает объекты запроса и настраивает ряд свойств контроллера на основе содержимого запроса. Свойства, которые устанавливаются:
- shutdownProcess() public
Выполняет различные процессы завершения для этого контроллера. Вызывает компоненты и обратные вызовы контроллера в правильном порядке.
- startupProcess() public
Выполняет начальный процесс для этого контроллера. Вызывает компоненты и обратные вызовы контроллера в правильном порядке.
- validate() publicВозвращает количество ошибок в отправленной форме.
- validateErrors() public
Проверяет модели, переданные параметрами. Принимает список моделей в качестве переменного аргумента. Пример:
Подробное описание метода
__construct()source public
__construct( CakeRequest $request null , CakeResponse $response null )
Конструктор.
Параметры
-
CakeRequest$requestoptional null Объект запроса для этого контроллера. Может быть null для тестирования, но ожидайте, что функции, использующие параметры запроса, не будут работать.
-
CakeResponse$responseoptional null - Объект ответа для этого контроллера.
Переопределяет
Object::__construct() __get()source public
__get( string $name )
Обеспечивает обратную совместимость доступа к свойствам объекта запроса. Также предоставляет псевдоним params.
Параметры
- строка
$name - Имя запрашиваемого значения
Возвращает
mixedЗапрашиваемое значение для допустимых переменных/псевдонимов, иначе null
__isset()source public
__isset( string $name )
Обеспечивает обратную совместимость, чтобы избежать проблем с пустыми и isset свойствами, а также алиасами свойств. Лениво загружает модели, используя метод loadModel(), если они объявлены в $uses
Параметры
- строка
$name - Имя свойства для проверки.
Возвращает
логическое значение__set()source public
__set( string $name , mixed $value )
Обеспечивает обратную совместимость для установки значений в объект запроса.
Параметры
- строка
$name - Имя свойства для установки.
- смешанный
$value - Значение для установки.
_afterScaffoldSave()source protected
_afterScaffoldSave( string $method )
Псевдоним к afterScaffoldSave()
Устарело
3.0.0 Будет удалено в версии 3.0.Параметры
- строка
$method - Имя метода.
Возвращает
логическое значениеСм. также
Controller::afterScaffoldSave()_afterScaffoldSaveError()source protected
_afterScaffoldSaveError( string $method )
Псевдоним к afterScaffoldSaveError()
Устарело
3.0.0 Будет удалено в версии 3.0.Параметры
- строка
$method - Имя метода.
Возвращает
логическое значениеСм. также
Controller::afterScaffoldSaveError()_beforeScaffold()source protected
_beforeScaffold( string $method )
Псевдоним к beforeScaffold()
Устарело
3.0.0 Будет удалено в версии 3.0.Параметры
- строка
$method - Имя метода.
Возвращает
логическое значениеСм. также
Controller::beforeScaffold()_getScaffold()source protected
_getScaffold( CakeRequest $request )
Возвращает объект scaffold, используемый для динамически сгенерированных контроллеров.
Параметры
-
CakeRequest$request - Экземпляр запроса.
Возвращает
Scaffold_getViewObject()source protected
_getViewObject( )
Создаёт экземпляр класса представления на основе свойства контроллера
Возвращает
View_isPrivateAction()source protected
_isPrivateAction( ReflectionMethod $method , CakeRequest $request )
Проверяет, помечен ли метод действия запроса как приватный (с символом подчеркивания) или если запрос пытается напрямую обратиться к префиксу действия.
Параметры
- ReflectionMethod
$method - Метод, который необходимо вызвать.
-
CakeRequest$request - Запрос для проверки.
Возвращает
логическое значение_mergeControllerVars()source protected
_mergeControllerVars( )
Объединяет переменные компонентов, хелперов и используемых классов из Controller::$_mergeParent и PluginAppController.
_mergeUses()source protected
_mergeUses( array $merge )
Вспомогательный метод для объединения свойства $uses.
Объединяет элементы, которых ещё нет в $this->uses, в $this->uses.
Параметры
- массив
$merge - Данные для объединения.
_parseBeforeRedirect()source protected
_parseBeforeRedirect( mixed $response , string|array $url , integer $status , boolean $exit )
Разбирает ответ beforeRedirect.
Параметры
- смешанный
$response - Ответ от обратного вызова beforeRedirect
- строка/массив
$url - То же значение, что и у beforeRedirect
- целое число
$status - То же значение, что и у beforeRedirect
- логическое значение
$exit - То же значение, что и у beforeRedirect
Возвращает
массивМассив с ключами url, status и exit
_scaffoldError()source protected
_scaffoldError( string $method )
Псевдоним к scaffoldError()
Устарело
3.0.0 Будет удалено в версии 3.0.Параметры
- строка
$method - Имя метода.
Возвращает
логическое значениеСм. также
Controller::scaffoldError()afterFilter()source public
afterFilter( )
Вызывается после выполнения и отображения действия контроллера.
Ссылка
http://book.cakephp.org/2.0/ru/controllers.html#request-life-cycle-callbacksafterScaffoldSave()source public
afterScaffoldSave( string $method )
Этот метод должен быть переопределён в дочерних классах.
Параметры
- строка
$method - имя метода, вызываемого либо edit, либо update.
Возвращает
логическое значениеУспех
Ссылка
http://book.cakephp.org/2.0/ru/controllers.html#callbacksafterScaffoldSaveError()source public
afterScaffoldSaveError( string $method )
Этот метод должен быть переопределён в дочерних классах.
Параметры
- строка
$method - имя метода, вызываемого либо edit, либо update.
Возвращает
логическое значениеУспех
Ссылка
http://book.cakephp.org/2.0/ru/controllers.html#callbacksbeforeFilter()source public
beforeFilter( )
Вызывается перед выполнением действия контроллера. Вы можете использовать этот метод для конфигурирования и настройки компонентов или выполнения логики, которая должна выполняться перед каждым действием контроллера.
Ссылка
http://book.cakephp.org/2.0/ru/controllers.html#request-life-cycle-callbacksbeforeRedirect()source public
beforeRedirect( string|array $url , integer $status null , boolean $exit true )
Метод beforeRedirect вызывается при вызове метода redirect контроллера, но до любого дальнейшего действия.
Если этот метод возвращает false, контроллер не будет продолжать перенаправлять запрос. Переменные $url, $status и $exit имеют то же значение, что и в методе контроллера. Вы также можете вернуть строку, которая будет интерпретироваться как URL для перенаправления, или вернуть ассоциативный массив с ключом 'url' и необязательными ключами 'status' и 'exit'.
Параметры
- строка/массив
$url Строка или массив, представляющий URL, указывающий на другое место в приложении или абсолютный URL.
- целое число
$statusнеобязательный null - Необязательный код HTTP-статуса (например: 404)
- логическое значение
$exitнеобязательный true - Если true, после перенаправления будет вызван exit()
Возвращает
смешанныйfalse, чтобы остановить событие перенаправления, строку, представляющую новый URL для перенаправления, или массив с ключами url, status и exit, которые будут использованы методом redirect.
Ссылка
http://book.cakephp.org/2.0/ru/controllers.html#request-life-cycle-callbacksbeforeRender()source public
beforeRender( )
Вызывается после выполнения действия контроллера, но перед отрисовкой представления. Вы можете использовать этот метод для выполнения логики или установки переменных представления, которые необходимы для каждого запроса.
Ссылка
http://book.cakephp.org/2.0/ru/controllers.html#request-life-cycle-callbacksbeforeScaffold()source public
beforeScaffold( string $method )
Этот метод должен быть переопределён в дочерних классах.
Параметры
- строка
$method - имя вызываемого метода, например, index, edit и т. д.
Возвращает
booleanУспех
Ссылка
http://book.cakephp.org/2.0/ru/controllers.html#callbacksconstructClasses()source public
constructClasses( )
Загружает классы моделей на основе свойства uses, см. Controller::loadModel(); для получения дополнительной информации. Загружает компоненты и подготавливает их к инициализации.
Возвращает
mixedtrue, если модели найдены и экземпляр создан.
Выбрасывает
MissingModelExceptionСм. также
Controller::loadModel()Ссылка
http://book.cakephp.org/2.0/ru/controllers.html#Controller::constructClassesdisableCache()source public
disableCache( )
Запрещает кеширование результатов текущего запроса в браузере пользователя.
Устарело
3.0.0 Будет удалено в 3.0. Используйте CakeResponse::disableCache().Ссылка
http://book.cakephp.org/2.0/ru/controllers.html#Controller::disableCacheflash()source public
flash( string $message , string|array $url , integer $pause 1 , string $layout 'flash' )
Отображает сообщение пользователю на $pause секунд, затем перенаправляет на $url. Использует flash.ctp в качестве шаблона по умолчанию для сообщения. Не работает, если текущий уровень отладки выше 0.
Устарело
3.0.0 Будет удалено в 3.0. Используйте Flash::set() с версией 2.7+ или Session::setFlash() до версии 2.7.Параметры
- строка
$message - Сообщение для отображения пользователю
- строка|массив
$url - Относительный URL-адрес или URL-адрес в формате массива для перенаправления после истечения времени
- целое число
$pauseнеобязательно 1 - Время отображения сообщения
- строка
$layoutнеобязательно 'flash' - Используемый шаблон, по умолчанию 'flash'
Ссылка
http://book.cakephp.org/2.0/ru/controllers.html#Controller::flashgetEventManager()source public
getEventManager( )
Возвращает экземпляр менеджера CakeEventManager, который обрабатывает любые обратные вызовы. Вы можете использовать этот экземпляр для регистрации новых слушателей или обратных вызовов к событиям контроллера или создания собственных событий и их запуска по необходимости.
Возвращает
CakeEventManagerheader()source public
header( string $status )
Метод-обёртка для CakeResponse::header().
Устарело
3.0.0 Будет удалено в 3.0. Используйте CakeResponse::header().Параметры
- строка
$status - Устанавливаемое сообщение заголовка.
httpCodes()source public
httpCodes( integer|array $code null )
Запрашивает и устанавливает допустимые коды и сообщения HTTP-ответов.
Устарело
3.0.0 С 2.4. Будет удалено в 3.0. Используйте CakeResponse::httpCodes().Параметры
- целое число|массив
$codeнеобязательно null -
Если $code — целое число, то соответствующий код/сообщение возвращается, если оно существует, null, если не существует. Если $code — массив, то ключи 'code' и 'message' каждого вложенного массива добавляются к стандартным HTTP-кодам. Пример:
httpCodes(404); // returns array(404 => 'Not Found') httpCodes(array( 701 => 'Unicorn Moved', 800 => 'Unexpected Minotaur' )); // sets these new values, and returns true
Возвращает
массивАссоциативный массив HTTP-кодов в качестве ключей и строк сообщений в качестве значений или null, если заданный $code не существует.
implementedEvents()source public
implementedEvents( )
Возвращает список всех событий, которые будут срабатывать в контроллере в течение его жизненного цикла. Вы можете переопределить эту функцию, чтобы добавить собственные обратные вызовы-слушатели.
Возвращает
массивРеализация
CakeEventListener::implementedEvents() invokeAction()source public
invokeAction( CakeRequest $request )
Выполняет действие контроллера. Проверяет, что действие существует и не является закрытым.
Параметры
-
CakeRequest$request - Экземпляр запроса.
Возвращает
mixedРезультат ответа.
Выбрасывает
PrivateActionExceptionКогда действия не являются публичными или начинаются с символа «_»
MissingActionExceptionКогда действия не определены и scaffolding не включён.
loadModel()source public
loadModel( string $modelClass null , integer|string $id null )
Загружает и создаёт экземпляры моделей, необходимых для этого контроллера. Если модель отсутствует, будет выброшено исключение об отсутствии таблицы базы данных, поскольку CakePHP на данный момент генерирует динамические модели.
Параметры
- строка
$modelClassнеобязательно null - Имя класса модели для загрузки
- целое число|строка
$idнеобязательно null - Изначальный идентификатор, который должен иметь созданный экземпляр класса модели
Возвращает
booleanTrue, если модель найдена
Выбрасывает
MissingModelExceptionЕсли класс модели не найден.
paginate()source public
paginate( Model|string $object null , string|array $scope array() , array $whitelist array() )
Обрабатывает автоматическую постраничную навигацию записей модели.
Параметры
-
Model|строка$objectнеобязательно null - Модель для постраничной навигации (например: экземпляр модели или 'Модель' или 'Модель.ВложеннаяМодель')
- строка|массив
$scopeнеобязательно array() - Условия для использования при постраничной навигации
- массив
$whitelistнеобязательно array() - Список разрешённых параметров для постраничной навигации
Возвращает
массивРезультаты запроса модели
Ссылка
http://book.cakephp.org/2.0/ru/controllers.html#Controller::paginatepostConditions()source public
postConditions( array $data array() , string|array $op null , string $bool 'AND' , boolean $exclusive false )
Преобразует данные формы POST в массив условий модели, подходящий для использования в вызове Model::find().
Устарело
3.0.0 Будет удалено в 3.0.Параметры
- массив
$dataнеобязательно array() - Данные формы POST, организованные по модели и полю
- строка|массив
$opнеобязательно null Строка, содержащая оператор SQL-сравнения, или массив, сопоставляющий операторы полям
- строка
$boolнеобязательно 'AND' - Оператор булевой логики SQL: AND, OR, XOR и т. д.
- boolean
$exclusiveнеобязательно false Если true, а $op — массив, поля, не включенные в $op, не будут включены в возвращаемые условия
Возвращает
массив|nullМассив условий модели
redirect()source public
redirect( string|array $url , integer|array|null $status null , boolean $exit true )
Перенаправляет на заданный $url после отключения $this->autoRender. Выполнение скрипта приостанавливается после перенаправления.
Параметры
- string|array
$url Строка или массив, определяющий URL, указывающий на другую локацию внутри приложения или абсолютный URL
- integer|array|null
$statusoptional null - Код HTTP-статуса (например: 301). По умолчанию 302, если передано null.
- boolean
$exitoptional true - Если true, после перенаправления будет вызван exit()
Возвращает
Cake\Network\Response|nullТриггеры
Controller.beforeRedirect $this, array($url, $status, $exit)Ссылка
http://book.cakephp.org/2.0/ru/controllers.html#Controller::redirectreferer()source public
referer( string $default null , boolean $local false )
Возвращает URL ссылки, отправившей запрос.
Параметры
- string
$defaultoptional null - URL по умолчанию, если HTTP_REFERER не может быть прочитан из заголовков
- boolean
$localoptional false - Если true, ссылки-источники будут ограничены локальным сервером
Возвращает
stringURL ссылки-источника
Ссылка
http://book.cakephp.org/2.0/ru/controllers.html#Controller::refererrender()source public
render( string $view null , string $layout null )
Создаёт правильный класс представления, передаёт ему данные и использует его для рендеринга вывода представления.
Параметры
- string
$viewoptional null - Представление для рендеринга
- string
$layoutoptional null - Шаблон макета
Возвращает
CakeResponseОбъект ответа, содержащий отрендеренное представление.
Триггеры
Controller.beforeRender $thisСсылка
http://book.cakephp.org/2.0/ru/controllers.html#Controller::renderscaffoldError()source public
scaffoldError( string $method )
Этот метод следует переопределять в дочерних классах. В противном случае будет рендериться ошибка scaffold. Метод ОБЯЗАТЕЛЬНО должен возвращать true в дочерних классах.
Параметры
- string
$method - Имя вызываемого метода (например, index, edit и т.д.)
Возвращает
booleanУспех
Ссылка
http://book.cakephp.org/2.0/ru/controllers.html#callbacksset()source public
set( string|array $one , string|array $two null )
Сохраняет переменную для использования внутри шаблона представления.
Параметры
- string|array
$one - Строка или массив данных.
- string|array
$twooptional null Значение, если $one — строка (в этом случае строка работает как ключ). Не используется, если $one — ассоциативный массив, иначе используется как значения для ключей $one.
Ссылка
http://book.cakephp.org/2.0/ru/controllers.html#interacting-with-viewssetAction()source public
setAction( string $action )
Внутреннее перенаправление одного действия на другое. Не выполняет другой HTTP-запрос, в отличие от Controller::redirect()
Примеры:
setAction('another_action');
setAction('action_with_parameters', $parameter1); Параметры
- string
$action Новое действие, на которое происходит «перенаправление». Любые другие параметры, переданные в этот метод, будут переданы как параметры новому действию.
Возвращает
mixedВозвращает значение, возвращаемое вызванным действием
setRequest()source public
setRequest( CakeRequest $request )
Устанавливает объекты запроса и настраивает ряд свойств контроллера на основе содержимого запроса. Свойства, которые устанавливаются:
- $this->request - В параметр $request
- $this->plugin - В $request->params['plugin']
- $this->view - В $request->params['action']
- $this->autoLayout - В false, если установлен $request->params['bare'];
- $this->autoRender - В false, если $request->params['return'] == 1
- $this->passedArgs - В объединённые результаты params['named'] и params['pass]
Параметры
-
CakeRequest$request - Экземпляр запроса.
shutdownProcess()source public
shutdownProcess( )
Выполнение различных процессов завершения работы для этого контроллера. Вызывает компоненты и обратные вызовы контроллера в правильном порядке.
- вызывает обратный вызов компонента
shutdown. - вызывает метод контроллера
afterFilter.
Триггеры
Controller.shutdown $thisstartupProcess()source public
startupProcess( )
Выполнение процесса запуска для этого контроллера. Вызывает компоненты и обратные вызовы контроллера в правильном порядке.
- Инициализирует компоненты, вызывая их обратный вызов
initialize - Вызывает метод контроллера
beforeFilter. - вызывает методы компонентов
startup.
Триггеры
Controller.initialize $thisController.startup $this
validate()source public
validate( )
Возвращает количество ошибок в отправленной форме.
Устарело
3.0.0 Этот метод будет удалён в 3.0Возвращает
integerКоличество ошибок
validateErrors()source public
validateErrors( )
Проверяет модели, переданные в качестве параметров. Принимает список моделей в качестве переменных аргументов. Пример:
$errors = $this->validateErrors($this->Article, $this->User);
Устарело
3.0.0 Этот метод будет удалён в 3.0Возвращает
arrayОшибки проверки или false, если ошибок нет
Методы, унаследованные от Object
_mergeVars()source protected
_mergeVars( array $properties , string $class , boolean $normalize true )
Объединяет $property этого объекта со свойством в определении $class. Значение этого свойства в текущем классе будет объединено поверх значения в $class.
Это обеспечивает часть магии DRY, предоставляемой CakePHP. Если вы хотите отключить её, переопределите этот метод как пустую функцию.
Параметры
- array
$properties - Имя свойств для объединения.
- string
$class - Класс для объединения свойства.
- boolean
$normalizeoptional true - Установите значение в true, чтобы выполнить нормализацию свойств с помощью Hash::normalize() перед объединением.
_set()source protected
_set( array $properties array() )
Позволяет устанавливать несколько свойств объекта в одной строке кода. Будут установлены только те свойства, которые являются частью объявления класса.
Параметры
- array
$propertiesoptional array() - Ассоциативный массив, содержащий свойства и соответствующие значения.
_stop()source protected
_stop( integer|string $status 0 )
Останавливает выполнение текущего скрипта. Оборачивает exit(), что упрощает тестирование.
Параметры
- integer|string
$statusoptional 0 - см. http://php.net/exit для значений
dispatchMethod()source public
dispatchMethod( string $method , array $params array() )
Вызывает метод этого объекта с заданными параметрами. Предоставляет оболочку ООП для call_user_func_array
Параметры
- строка
$method - Имя метода для вызова
- массив
$paramsнеобязательно array() - Список параметров для использования при вызове $method
Возвращаемые значения
смешанныйВозвращает результат вызова метода
log()source public
log( string $msg , integer $type LOG_ERR , null|string|array $scope null )
Удобный метод для записи сообщения в CakeLog. Для получения дополнительной информации о записи в журналы, см. CakeLog::write().
Параметры
- строка
$msg - Сообщение журнала
- целое число
$typeнеобязательно LOG_ERR - Константа типа ошибки. Определена в app/Config/core.php.
- null|строка|массив
$scopeнеобязательно null Области, в которых создаётся сообщение журнала. Для получения дополнительной информации о областях ведения журнала, см. CakeLog::config().
Возвращаемые значения
булевоУспешность записи в журнал
requestAction()source public
requestAction( string|array $url , array $extra array() )
Вызывает метод контроллера из любой точки. Может использоваться для связи контроллеров или интеграции плагинов в основное приложение. requestAction может использоваться для возврата рендеренных представлений или получения возвращаемого значения от действий контроллера.
Внутри метод использует Router::reverse() для преобразования параметра $url в строку URL. Вы должны использовать форматы URL, совместимые с Router::reverse().
Передача данных POST и GET
Данные POST и GET можно моделировать в requestAction. Для данных GET используйте $extra['url']. Параметр $extra['data'] позволяет моделировать данные POST.
Параметры
- строка|массив
$url URL, основанный на строке или массиве. В отличие от других массивов URL в CakePHP, этот URL не будет автоматически обрабатывать переданные и именованные аргументы в параметре $url.
- массив
$extraнеобязательно array() Если массив содержит ключ "return", он устанавливает AutoRender в значение true. Также может использоваться для отправки данных GET/POST и именованных/переданных аргументов.
Возвращаемые значения
смешанныйБулево значение true или false при успехе/неудачи или содержимое рендеренного действия, если в $extra задан ключ 'return'.
toString()source public
toString( )
Преобразование объекта в строку. Каждый класс может переопределить этот метод по мере необходимости.
Возвращаемые значения
строкаИмя этого класса
Подробное описание свойств
$Componentssource
public ComponentCollection
Экземпляр ComponentCollection, используемый для обработки обратных вызовов.
null
$Viewsource
public View
Экземпляр View, созданный во время рендеринга. Он не будет задан до вызова Controller::render().
$_eventManagersource
protected CakeEventManager
Экземпляр CakeEventManager, используемый этим контроллером для отправки внутренних событий.
null
$_mergeParentsource
protected строка
Имя класса родительского класса, с которым вы хотите выполнить слияние. Обычно это AppController, но вы можете захотеть выполнить слияние переменных с другим родительским классом.
'AppController'
$_responseClasssource
protected строка
Имя класса, используемого для создания объекта ответа.
'CakeResponse'
$autoLayoutsource
public логическое
Установите в значение true, чтобы автоматически отображать макет вокруг представлений.
true
$autoRendersource
public логическое
Установите в значение true, чтобы автоматически отобразить представление после логики действия.
true
$cacheActionsource
public смешанный
Используется для определения методов контроллера, которые будут кэшироваться. Чтобы кэшировать отдельное действие, значение устанавливается в массив, содержащий ключи, соответствующие именам действий, и значения, обозначающие время истечения срока действия кэша (в секундах).
Пример:
public $cacheAction = array(
'view/23/' => 21600,
'recalled/' => 86400
); $cacheAction также может быть установлен на строку, совместимую с strtotime(). Это помечает все действия в контроллере для кэширования представления.
Ссылка
http://book.cakephp.org/2.0/ru/core-libraries/helpers/cache.html#additional-configuration-optionsfalse
$componentssource
public массив
Массив, содержащий имена компонентов, используемых этим контроллером. Имена компонентов не должны содержать часть "Component" имени класса.
Пример: public $components = array('Session', 'RequestHandler', 'Acl');
Ссылка
http://book.cakephp.org/2.0/ru/controllers/components.htmlarray('Session', 'Flash') $extsource
public строка
Расширение файла для шаблонов представления. По умолчанию соответствует общепринятому в CakePHP значению ".ctp".
'.ctp'
$helperssource
public смешанный
Массив, содержащий имена помогающих классов, используемых этим контроллером. Элементы массива не должны содержать часть "Helper" имени класса.
Пример: public $helpers = array('Html', 'Js', 'Time', 'Ajax');
Ссылка
http://book.cakephp.org/2.0/ru/controllers.html#components-helpers-and-usesarray()
$layoutsource
public строка
Имя файла макета, в котором должно отображаться представление. Указанное имя — имя файла макета в /app/View/Layouts без расширения .ctp.
'default'
$methodssource
public массив
Содержит текущие методы контроллера. Это список всех методов, доступных через URL. Изменение этого массива позволит изменить доступные методы.
array()
$modelClasssource
public строка
Основное имя класса модели для этого контроллера, версия, приведенная к единственному числительному с помощью Inflector::singularize(), из свойства $name контроллера.
Пример: Для контроллера с именем 'Комментарии' modelClass будет 'Комментарий'
null
$modelKeysource
public string
Ключ модели контроллера, имеющий подчеркнутое представление свойства $modelClass контроллера.
Пример: для контроллера с именем 'ArticleComments', моделью будет 'article_comment'.
null
$namesource
public string
Имя контроллера. Имена контроллеров пишутся во множественном числе, по аналогии с моделью, которую они используют.
Ссылка
http://book.cakephp.org/2.0/ru/controllers.html#controller-attributesnull
$requestsource
public CakeRequest
Экземпляр объекта CakeRequest, содержащий информацию о текущем запросе. Этот объект содержит всю информацию о запросе и несколько методов для считывания дополнительной информации о нём.
Ссылка
http://book.cakephp.org/2.0/ru/controllers/request-response.html#cakerequest$responsesource
public CakeResponse
Экземпляр объекта CakeResponse, содержащий информацию о предстоящем ответе.
Ссылка
http://book.cakephp.org/2.0/ru/controllers/request-response.html#cakeresponse$scaffoldsource
public mixed
Вызывает Scaffolding.
Ссылка
http://book.cakephp.org/2.0/ru/controllers/scaffolding.htmlfalse
$usessource
public mixed
Массив, содержащий имена классов моделей, используемых этим контроллером.
Пример: public $uses = array('Product', 'Post', 'Comment');
Может быть установлен на несколько значений для выражения различных вариантов:
-
trueИспользуйте стандартное склоненное имя модели. -
array()Используйте только модели, определенные в родительском классе. -
falseНе использовать модели вообще, также не объединять с родительским классом. -
array('Post', 'Comment')Используйте только модели Post и Comment. Модели также будут объединены с родительским классом.
Значение по умолчанию - true.
Ссылка
http://book.cakephp.org/2.0/ru/controllers.html#components-helpers-and-usestrue
$validationErrorssource
public array
Хранит любые ошибки валидации, полученные в результате последнего вызова метода validateErrors().
null
$viewsource
public string
Имя файла представления, которое нужно отобразить. Указанное имя - это имя файла в /app/View/<подпапка> без расширения .ctp.
null
$viewClasssource
public string
Имя класса представления, в который контроллер отправляет вывод.
'View'
$viewPathsource
public string
Имя подпапки представлений, содержащей представления для этого контроллера.
null
Подробное описание магических свойств
$Aclsource
public AclComponent
$Authsource
public AuthComponent
$Cookiesource
public CookieComponent
$Emailsource
public EmailComponent
$Flashsource
public FlashComponent
$Paginatorsource
public PaginatorComponent
$RequestHandlersource
public RequestHandlerComponent
$Securitysource
public SecurityComponent
$Sessionsource
public SessionComponent
© 2005–2016 The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
http://api.cakephp.org/2.8/class-Controller.html