CakePHP RequestHandler: setContent / renderAs / responseAs .. что? - PullRequest
1 голос
/ 18 сентября 2009

Может кто-нибудь объяснить, пожалуйста, эти функции:

 RequestHandlerComponent::renderAs()
 RequestHandlerComponent::respondAs()
 RequestHandlerComponent::setContent()

Чувствовать себя немного избыточно, если иметь все три из них (в любом случае, как публичные методы). Если я хочу ответить на запрос файлом PDF, значит ли это, что мне придется вызывать все три функции? Как я должен использовать их в моем контроллере?

1 Ответ

8 голосов
/ 18 сентября 2009

Они все разные. Из API Документов :

renderAs
Устанавливает пути макета и шаблона для типа контента, определенного в $ type.

т.е. более или менее ярлык для $this->layout = '...' и $this->render(...).

respondAs
Устанавливает заголовок ответа на основе имени индекса карты типов. Если DEBUG больше 2, заголовок не устанавливается.

Выходы header(...).

setContent
Добавляет / устанавливает Content-type (s) для данного имени. Этот метод позволяет сопоставлять типы контента с понятными псевдонимами (или расширениями), что позволяет RequestHandler автоматически отвечать на запросы этого типа в методе запуска.

На самом деле ничего не делает с выводом, просто позволяет добавлять новые типы, которые не определены по умолчанию.

Для вывода PDF-файла (при условии, что он уже есть в виде файла) вы должны использовать Media View .

...