Менеджер ответов
Менеджер ответов (response manager) предназначен для формирования ответа на запрос пользователя. Он расширяет соответствующий класс ответа Symfony\Component\HttpFoundation\Response библиотеки Symfony и адаптирован для MODX. Как и другие менеджеры и сервисы библиотеки modHelpers, он храниться в контейнере:
$response = app('response');
Перечень основных методов:
-
setContent($content)
- Записывает указанную строку в тело ответа.
response()->setContent('Контент для вывода.'); // Упрощённый вариант response('Контент для вывода.');
getContent()
- Получает тело ответа. Можно использовать более короткое название content()
.json($data = [], $status = 200, array $headers = [], $options = 0)
- Возвращает JSON ответ и выставляет заголовок Content-Type: application/json
.chunk($chunk, $data = [], $status = 200, array $headers = [])
- Записывает содержимое чанка в тело ответа. Указываются название чанка (обычный или файловый), массив плейсхолдеров (если нужно), код статуса и массив заголовков. Обязательным является только название чанка. with(array $data = [])
- Передаёт массив плейсхолдеров для парсинга чанка.header($key, $values, $replace = true)
- Добавляет к ответу указанный заголовок.response() ->header('myHeader1', 'Some value') ->header('myHeader1', 'Some value');
headers(array $headers)
- Работает с массивом заголовков.cookie()
- Добавляет куки к ответу. Можно передавать как параметры (см. setcookie()), так и объект класса modHelpers\Cookie.response()->cookie('myCookie', 'Some value');
download($file, $name = null, array $headers = [], $disposition = 'attachment')
- Возвращает файл для скачивания.response()->download('path/to/file')->send();
file($file, array $headers = [])
- Возвращает содержимое файла.deleteFile()
- Удаляет файл, указанный в методах download()
и file()
.response()->download('path/to/file')->deleteFile()->send();
send()
- Подготавливает и возвращает ответ пользователю и прекращает выполнение скрипта.isNotModified(Request $request)
- Проверяет заголовки ETag и Last-Modified.if (response()->isNotModified(request())) { response()->send(false); }
setNotModified()
- Формирует запрос с кодом ответа 304.setCharset($charset)
- Указывает кодировку ответа.setProtocolVersion($version)
- Указывает версию протокола - 1.0 или 1.1.isOk()
- Возвращает TRUE, если код ответа равен 200.Методов очень много. Познакомится со всеми можно на странице библиотеки Symfony (ссылка выше).