diff options
Diffstat (limited to 'user_guide_src/source/libraries/output.rst')
-rw-r--r-- | user_guide_src/source/libraries/output.rst | 138 |
1 files changed, 138 insertions, 0 deletions
diff --git a/user_guide_src/source/libraries/output.rst b/user_guide_src/source/libraries/output.rst new file mode 100644 index 000000000..2cf7c0854 --- /dev/null +++ b/user_guide_src/source/libraries/output.rst @@ -0,0 +1,138 @@ +############ +Output Class +############ + +The Output class is a small class with one main function: To send the +finalized web page to the requesting browser. It is also responsible for +:doc:`caching <../general/caching>` your web pages, if you use that +feature. + +.. note:: This class is initialized automatically by the system so there + is no need to do it manually. + +Under normal circumstances you won't even notice the Output class since +it works transparently without your intervention. For example, when you +use the :doc:`Loader <../libraries/loader>` class to load a view file, +it's automatically passed to the Output class, which will be called +automatically by CodeIgniter at the end of system execution. It is +possible, however, for you to manually intervene with the output if you +need to, using either of the two following functions: + +$this->output->set_output(); +============================= + +Permits you to manually set the final output string. Usage example:: + + $this->output->set_output($data); + +.. important:: If you do set your output manually, it must be the last + thing done in the function you call it from. For example, if you build a + page in one of your controller functions, don't set the output until the + end. + +$this->output->set_content_type(); +==================================== + +Permits you to set the mime-type of your page so you can serve JSON +data, JPEG's, XML, etc easily. + +:: + + $this->output + ->set_content_type('application/json') + ->set_output(json_encode(array('foo' => 'bar'))); + + $this->output + ->set_content_type('jpeg') // You could also use ".jpeg" which will have the full stop removed before looking in config/mimes.php + ->set_output(file_get_contents('files/something.jpg')); + +.. important:: Make sure any non-mime string you pass to this method + exists in config/mimes.php or it will have no effect. + +$this->output->get_output(); +============================= + +Permits you to manually retrieve any output that has been sent for +storage in the output class. Usage example:: + + $string = $this->output->get_output(); + +Note that data will only be retrievable from this function if it has +been previously sent to the output class by one of the CodeIgniter +functions like $this->load->view(). + +$this->output->append_output(); +================================ + +Appends data onto the output string. Usage example:: + + $this->output->append_output($data); + +$this->output->set_header(); +============================= + +Permits you to manually set server headers, which the output class will +send for you when outputting the final rendered display. Example:: + + $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"); + +$this->output->set_status_header(code, 'text'); +================================================= + +Permits you to manually set a server status header. Example:: + + $this->output->set_status_header('401'); + // Sets the header as: Unauthorized + +`See here <http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html>`_ for +a full list of headers. + +$this->output->enable_profiler(); +================================== + +Permits you to enable/disable the +:doc:`Profiler <../general/profiling>`, which will display benchmark +and other data at the bottom of your pages for debugging and +optimization purposes. + +To enable the profiler place the following function anywhere within your +:doc:`Controller <../general/controllers>` functions:: + + $this->output->enable_profiler(TRUE); + +When enabled a report will be generated and inserted at the bottom of +your pages. + +To disable the profiler you will use:: + + $this->output->enable_profiler(FALSE); + +$this->output->set_profiler_sections(); +========================================= + +Permits you to enable/disable specific sections of the Profiler when +enabled. Please refer to the :doc:`Profiler <../general/profiling>` +documentation for further information. + +$this->output->cache(); +======================= + +The CodeIgniter output library also controls caching. For more +information, please see the :doc:`caching +documentation <../general/caching>`. + +Parsing Execution Variables +=========================== + +CodeIgniter will parse the pseudo-variables {elapsed_time} and +{memory_usage} in your output by default. To disable this, set the +$parse_exec_vars class property to FALSE in your controller. +:: + + $this->output->parse_exec_vars = FALSE; + |