Класс вывода(Выхода данных)
Класс вывода - это класс ядра с одной основной функцией: Отравить обработанный текст запрашиваемой веб-страницы в браузер. Он также отвечает за кеширование веб-страниц, если вы используете эту функцию.
Примечание
Этот класс инициализируется системой автоматически, поэтому нет необходимости делать это вручную.
При обычных обстоятельствах вы даже не заметите класс вывода поскольку он работает без вашего вмешательства. Например, при использовании класса загрузчика для загрузки файлов вида, они автоматически передаются в выходной класс, который будет вызываться CodeIgniter автоматически в конце выполнения системы. Можно выполнять вывод вручную, если необходимо.
Настройки класса
- class CI_Output
- $parse_exec_vars = TRUE;
Включает/отключает парсинг 0.0194 и 2.19MB псевдо-переменых.
CodeIgniter будет парсить эти токены в класс вывода по умолчанию. Чтобы отключить это, установите это свойство в FALSE в своём контроллере.
$this->output->parse_exec_vars = FALSE;
- set_output($output)
Параметры: - $output (строка) – Строка вывода
Возвращает: CI_Output экземпляр (метод цепочек)
Возвращаемый тип: CI_Output
Позволяет вручную установить окончательную строку вывода. Пример использования:
$this->output->set_output($data);
Важно
Установка вывода вручную, должно быть последним действием в функцию вызывающей его. Например, если вы строите страницу в одном из методов контроллера, не устанавливайте вызов вывода да конца страницы.
- set_content_type($mime_type[, $charset = NULL])
Параметры: - $mime_type (строка) – MIME идентификатор типа строки
- $charset (строка) – Набор символов
Возвращает: CI_Output экземпляр (метод цепочек)
Возвращаемый тип: CI_Output
Позволяет установить MIME тип страницы, так что вы можете использовать JSON данные, JPEG, XML без проблем.
$this->output ->set_content_type('application/json') ->set_output(json_encode(array('foo' => 'bar'))); $this->output ->set_content_type('jpeg') // Вы можете также использовать ".jpeg" который будет полностью остановлен прежде чем будет искаться в config/mimes.php ->set_output(file_get_contents('files/something.jpg'));
Важно
Убедитесь, что любой не MIME тип, передаваемый в этот метод существует в application/config/mimes.php иначе не будет никакого эффекта.
Вы также можете установить кодировку документа, путем передачи второго аргумента:
$this->output->set_content_type('css', 'utf-8');
- get_content_type()
Возвращает: Content-Type стоку Возвращаемый тип: строка Возвращает Content-Type HTTP заголовока в текущий момент, без учета значения кодировки.
$mime = $this->output->get_content_type();
Примечание
Если не задано, по умолчанию возвращаемое значение ‘text/html’.
- get_header($header)
Параметры: - $header (строка) – HTTP имя заголовка
Возвращает: HTTP заголовок ответа или NULL если не найден
Возвращаемый тип: смешанный
Возвращает требуемое значение HTTP заголовка или NULL если запрашиваемого заголовка нет. Пример:
$this->output->set_content_type('text/plain', 'UTF-8'); echo $this->output->get_header('content-type'); // Выводит: text/plain; charset=utf-8
Примечание
Имя заголовка сравниваетсяе без учета регистра.
Примечание
Сырые заголовки, отправленные родной PHP функцией header() также обнаружены.
- get_output()
Возвращает: Строка вывода Возвращаемый тип: строка Позволяет вручную получить любой вывод, который был отправлен для хранения в класс вывода. Пример использования:
$string = $this->output->get_output();Обратите внимание, что данные будут извлечены из этой функции, если они были ранее отправлены в класс вывода одной из функций CodeIgniter, такой как $this->load->view().
- append_output($output)
Параметры: - $output (строка) – Дополнительные выходные данные
Возвращает: CI_Output экземпляр (метод цепочек)
Возвращаемый тип: CI_Output
Добавляет данные в строку вывода.
$this->output->append_output($data);
- set_header($header[, $replace = TRUE])
Параметры: - $header (строка) – HTTP заголовок ответа
- $replace (булево) – Можно ли заменить старое значение заголовка, если он уже установлен
Возвращает: CI_Output экземпляр (метод цепочек)
Возвращаемый тип: CI_Output
Позволяет вручную настроить заголовки сервера, которые класс вывода вотправит в конечное визуализированное отображение. Пример:
$this->output->set_header('HTTP/1.0 200 OK'); $this->output->set_header('HTTP/1.1 200 OK'); $this->output->set_header('Last-Modified: '.gmdate('D, d M Y H:i:s', $last_update).' GMT'); $this->output->set_header('Cache-Control: no-store, no-cache, must-revalidate'); $this->output->set_header('Cache-Control: post-check=0, pre-check=0'); $this->output->set_header('Pragma: no-cache');
- set_status_header([$code = 200[, $text = '']])
Параметры: - $code (число) – HTTP код статуса
- $text (строка) – Произвольное сообщение
Возвращает: CI_Output экземпляр (метод цепочек)
Возвращаемый тип: CI_Output
Позволяет Вам вручную установить статус сервера заголовка. Пример:
$this->output->set_status_header(401); // Устанавливает заголовок, как: Unauthorized (посторонний)
Смотрите тут полный список заголовков.
Примечание
Этот метод является псевдонимом для общих функций set_status_header().
- enable_profiler([$val = TRUE])
Параметры: - $val (булево) – Следует ли включить или выключить профилировщик
Возвращает: CI_Output экземпляр (метод цепочек)
Возвращаемый тип: CI_Output
Позволяет включить/отключить профилировщик, который покажет тестовые и другие данных внизу страницы для отладки и оптимизации.
Чтобы включить профилировщик поместите следующую строку в любом месте метода вашего контроллера:
$this->output->enable_profiler(TRUE);
Когда включен, отчет будет сгенерирован и вставлен в нижней части страницы.
Чтобы выключить профилировщик можно использовать:
$this->output->enable_profiler(FALSE);
- set_profiler_sections($sections)
Параметры: - $sections (массив) – Разделы профилировщика
Возвращает: CI_Output экземпляр (метод цепочек)
Возвращаемый тип: CI_Output
Позволяет включить или отключить определенные разделы профилировщика когда он включен. Пожалуйста, обратитесь к документации профилировщика для получения дополнительной информации.
- cache($time)
Параметры: - $time (число) – Срок кеширования в минутах
Возвращает: CI_Output экземпляр (метод цепочек)
Возвращаемый тип: CI_Output
Кеш текущей страницы на указанное количество минут.
Для получения дополнительной информации, смотрите документацию кэширования.
- _display([$output = ''])
Параметры: - $output (строка) – Переопределить выходные данные
Возвращает: пустота
Возвращаемый тип: пустота
Отправляет доработанный вывод данных в браузер вместе с любымы заголовками сервера. Также останавливает таймеры маркеровок.
Примечание
Этот метод вызывается автоматически в конце выполнения скрипта, вам не нужно вызывать его вручную, пока не прервете выполнения скрипта с помощью exit() или die() в вашем коде.
Example:
$response = array('status' => 'OK'); $this->output ->set_status_header(200) ->set_content_type('application/json', 'utf-8') ->set_output(json_encode($response, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES)) ->_display(); exit;
Примечание
Вызывая этот метод вручную, не прерывая выполнение скрипта приведет к дублированию выходных данных.