<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>

<title>Code Igniter User Guide</title>

<style type='text/css' media='all'>@import url('../userguide.css');</style>
<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' />

<script type="text/javascript" src="../nav/nav.js"></script>
<script type="text/javascript" src="../nav/prototype.lite.js"></script>
<script type="text/javascript" src="../nav/moo.fx.js"></script>
<script type="text/javascript">
window.onload = function() {
	myHeight = new fx.Height('nav', {duration: 400}); 
	myHeight.hide();
}
</script>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv='expires' content='-1' />
<meta http-equiv= 'pragma' content='no-cache' />
<meta name='robots' content='all' />
<meta name='author' content='Rick Ellis' />
<meta name='description' content='Code Igniter User Guide' />

</head>
<body>

<!-- START NAVIGATION -->
<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div>
<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle.jpg" width="153" height="44" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div>
<div id="masthead">
<table cellpadding="0" cellspacing="0" border="0" style="width:100%">
<tr>
<td><h1>Code Igniter User Guide Version 1.5.0b1</h1></td>
<td id="breadcrumb_right"><a href="../toc.html">Linear Table of Contents</a></td>
</tr>
</table>
</div>
<!-- END NAVIGATION -->


<!-- START BREADCRUMB -->
<table cellpadding="0" cellspacing="0" border="0" style="width:100%">
<tr>
<td id="breadcrumb">
<a href="http://www.codeigniter.com/">Code Igniter Home</a> &nbsp;&#8250;&nbsp;
<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp;
Controllers
</td>
<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="www.codeigniter.com/user_guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td>
</tr>
</table>
<!-- END BREADCRUMB -->

<br clear="all" />


<!-- START CONTENT -->
<div id="content">

<h1>Controllers</h1>

<p>Controllers are the heart of your application, as they determine how HTTP requests should be handled.</p>


<ul>
<li><a href="#what">What is a Controller?</a></li>
<li><a href="#hello">Hello World</a></li>
<li><a href="#functions">Functions</a></li>
<li><a href="#passinguri">Passing URI Segments to Your Functions</a></li>
<li><a href="#default">Defining a Default Controller</a></li>
<li><a href="#remapping">Remapping Function Calls</a></li>
<li><a href="#output">Controlling Output Data</a></li>
<li><a href="#private">Private Functions</a></li>
<li><a href="#subfolders">Organizing Controllers into Sub-folders</a></li>
<li><a href="#constructors">Class Constructors</a></li>
<li><a href="#reserved">Reserved Function Names</a></li>
</ul>


<a name="what"></a>
<h2>What is a Controller?</h2>

<p><dfn>A Controller is simply a class file that is named in a way that can be associated with a URI.</dfn></p>

<p>Consider this URI:</p>

<code>www.your-site.com/index.php/<var>blog</var>/</code>

<p>In the above example, Code Igniter would attempt to find a controller named <dfn>blog.php</dfn> and load it.</p>

<p><strong>When a controller's name matches the first segment of a URI, it will be loaded.</strong></p>

<a name="hello"></a>
<h2>Let's try it:&nbsp; Hello World!</h2>

<p>Let's create a simple controller so you can see it in action.  Using your text editor, create a file called <dfn>blog.php</dfn>, and put the following code in it:</p>


<textarea class="textarea" style="width:100%" cols="50" rows="10">
<?php
class Blog extends Controller {

	function index()
	{
		echo 'Hello World!';
	}
}
?>
</textarea>



<p>Then save the file to your <dfn>application/controllers/</dfn> folder.</p>

<p>Now visit the your site using a URL similar to this:</p>

<code>www.your-site.com/index.php/<var>blog</var>/</code>

<p>If you did it right, you should see <samp>Hello World!</samp>.</p>

<p>Note: Class names must start with an uppercase letter.  In other words, this is valid:

<code>&lt;?php<br />
class <var>Blog</var> extends Controller {<br />
<br />
}<br />
?&gt;</code>

<p>This is <strong>not</strong> valid:</p>

<code>&lt;?php<br />
class <var>blog</var> extends Controller {<br />
<br />
}<br />
?&gt;</code>

<p>Also, always make sure your controller <dfn>extends</dfn> the parent controller class so that it can inherit all its functions.</p> 



<a name="functions"></a>
<h2>Functions</h2>

<p>In the above example the function name is <dfn>index()</dfn>.  The "index" function is always loaded by default if the 
<strong>second segment</strong> of the URI is empty.  Another way to show your "Hello World" message would be this:</p>

<code>www.your-site.com/index.php/<var>blog</var>/<samp>index</samp>/</code>

<p><strong>The second segment of the URI determines which function in the controller gets called.</strong></p>

<p>Let's try it.  Add a new function to your controller:</p>


<textarea class="textarea" style="width:100%" cols="50" rows="15">
<?php
class Blog extends Controller {

	function index()
	{
		echo 'Hello World!';
	}

	function comments()
	{
		echo 'Look at this!';
	}
}
?>
</textarea>

<p>Now load the following URL to see the <dfn>comment</dfn> function:</p>

<code>www.your-site.com/index.php/<var>blog</var>/<samp>comments</samp>/</code>

<p>You should see your new message.</p>

<a name="passinguri"></a>
<h2>Passing URI Segments to your Functions</h2>

<p>If your URI contains more then two segments they will be passed to your function as parameters.</p>

<p>For example, lets say you have a URI like this:

<code>www.your-site.com/index.php/<var>products</var>/<samp>shoes</samp>/<kbd>sandals</kbd>/<dfn>123</dfn></code>

<p>Your function will be passed URI segments 3 and 4 ("sandals" and "123"):</p>

<code>
&lt;?php<br />
class Products extends Controller {<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;function shoes($sandals, $id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo $sandals;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo $id;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
}<br />
?&gt;
</code>

<p class="important"><strong>Important:</strong>&nbsp; If you are using the <a href="routing.html">URI Routing</a> feature, the segments
passed to your function will be the re-routed ones.</p>


<a name="default"></a>
<h2>Defining a Default Controller</h2>

<p>Code Igniter can be told to load a default controller when a URI is not present, 
as will be the case when only your site root URL is requested.  To specify a default controller, open 
your <dfn>application/config/routes.php</dfn> file and set this variable:</p>

<code>$route['default_controller'] = '<var>Blog</var>';</code>

<p>Where <var>Blog</var> is the name of the controller class you want used. If you now load your main index.php file without
specifying any URI segments you'll see your Hello World message by default.</p>



<a name="remapping"></a>
<h2>Remapping Function Calls</h2>

<p>As noted above, the second segment of the URI typically determines which function in the controller gets called.
Code Igniter permits you to override this behavior through the use of the <kbd>_remap()</kbd> function:</p>

<code>function _remap()<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;// Some code here...<br />
}</code>

<p class="important"><strong>Important:</strong>&nbsp; If your controller contains a function named <kbd>_remap()</kbd>, it will <strong>always</strong> 
get called regardless of what your URI contains.  It overrides the normal behavior in which the URI determines which function is called, 
allowing you to define your own function routing rules.</p>

<p>The overridden function call (typically the second segment of the URI) will be passed as a parameter the <kbd>_remap()</kbd> function:</p>

<code>function _remap(<var>$method</var>)<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;if ($method == 'some_method')<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this->$method();<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this->default_method();<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
}</code>





<a name="output"></a>
<h2>Processing Output</h2>

<p>Code Igniter has an output class that takes care of sending your final rendered data to the web browser automatically.  More information on this can be found in the
<a href="views.html">Views</a> and <a href="../libraries/output.html">Output class</a> pages.  In some cases, however, you might want to 
post-process the finalized data in some way and send it to the browser yourself.  Code Igniter permits you to 
add a function named <dfn>_output()</dfn> to your controller that will receive the finalized output data.

<p><strong>Important:</strong>&nbsp; If your controller contains a function named <kbd>_output()</kbd>, it will <strong>always</strong> 
be called by the output class instead of echoing the finalized data directly. The first parameter of the function will contain the finalized output.</p>

<p>Here is an example:</p>

<code>
function _output($output)<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;echo $output;<br />
}</code>

<p class="important">Please note that your <dfn>_output()</dfn> function will receive the data in its finalized state.  Benchmark and memory usage data will be rendered,
cache files written (if you have caching enabled), and headers will be sent (if you use that <a href="../libraries/Output.html">feature</a>)
before it is handed off to the _output() function.  If you are using this feature the page execution timer and memory usage stats might not be perfectly accurate
since they will not take into acccount any further processing you do.  For an alternate way to control output <em>before</em> any of the final processing is done, please see
the available methods in the <a href="../libraries/Output.html">Output Class</a>.</p>

<a name="private"></a>
<h2>Private Functions</h2>


<p>In some cases you may want certain functions hidden from public access.  To make a function private, simply add an
underscore as the name prefix and it will not be served via a URL request. For example, if you were to have a function like this:</p>

<code>
function _utility()<br />
{<br />
&nbsp;&nbsp;// some code<br />
}</code>

<p>Trying to access it via the URL, like this, will not work:</p>

<code>www.your-site.com/index.php/<var>blog</var>/<samp>_utility</samp>/</code>



<a name="subfolders"></a>
<h2>Organizing Your Controllers into Sub-folders</h2>

<p>If you are building a large application you might find it convenient to organize your controllers into sub-folders.  Code Igniter permits you to do this.</p>

<p>Simply create folders within your <dfn>application/controllers</dfn> directory and place your controller classes within them.</p>

<p><strong>Note:</strong>&nbsp; When using this feature the first segment of your URI must specify the folder.  For example, lets say you have a controller
located here:</p>

<code>application/controllers/<kbd>products</kbd>/shoes.php</code>

<p>To call the above controller your URI will look something like this:</p>

<code>www.your-site.com/index.php/products/shoes/123</code>

<p>Each of your sub-folders may contain a default controller which will be
called if the URL contains only the sub-folder.  Simply name your default controller as specified in your
<dfn>application/config/routes.php</dfn> file</p>


<p>Code Igniter also permits you to remap your URIs using its <a href="routing.html">URI Routing</a> feature.



<a name="constructors"></a>
<h2>Class Constructors</h2>


<p>If you intend to use a constructor in any of your Controllers, you <strong>MUST</strong> place the following line of code in it:</p>

<code>parent::Controller();</code>

<p>The reason this line is necessary is because your local constructor will be overriding the one in the parent controller class so we need to manually call it.</p>


<p>If you are not familiar with constructors, in PHP 4, a <em>constructor</em> is simply a function that has the exact same name as the class:</p>

<code>
&lt;?php<br />
class <kbd>Blog</kbd> extends Controller {<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;function <kbd>Blog()</kbd><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<var>parent::Controller();</var><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
}<br />
?&gt;</code>

<p>In PHP 5, constructors use the following syntax:</p>

<code>
&lt;?php<br />
class <kbd>Blog</kbd> extends Controller {<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;function <kbd>__construct()</kbd><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<var>parent::Controller();</var><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
}<br />
?&gt;</code>

<p>Constructors are useful if you need to set some default values, or run a default process when your class is instantiated.
Constructors can't return a value, but they can do some default work.</p>

<a name="reserved"></a>
<h2>Reserved Function Names</h2>

<p>Since your controller classes will extend the main application controller you 
must be careful not to name your functions identically to the ones used by that class, otherwise your local functions
will override them.  The following
is a list of reserved names.  Do not name your controller functions any of these:</p>

<ul>
<li>Controller</li>
<li>CI_Base</li>
<li>_ci_initialize</li>
<li>_ci_scaffolding</li>
</ul>

<p><br />If you are running PHP 4 there are some additional reserved names. These ONLY apply if you are running PHP 4.</p>

<ul>
<li>CI_Loader</li>
<li>config</li>
<li>database</li>
<li>file</li>
<li>helper</li>
<li>helpers</li>
<li>language</li>
<li>library</li>
<li>model</li>
<li>plugin</li>
<li>plugins</li>
<li>scaffolding</li>
<li>script</li>
<li>view</li>
<li>vars</li>
<li>_ci_assign_to_models</li>
<li>_ci_autoloader</li>
<li>_ci_init_class</li>
<li>_ci_init_scaffolding</li>
<li>_ci_is_instance</li>
<li>_ci_load</li>
<li>_ci_load_class</li>
<li>_ci_object_to_array</li>
</ul>






<h2>That's it!</h2>

<p>That, in a nutshell, is all there is to know about controllers.</p>



</div>
<!-- END CONTENT -->


<div id="footer">
<p>
Previous Topic:&nbsp;&nbsp;<a href="urls.html">Code Igniter URLs</a>
&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
Next Topic:&nbsp;&nbsp;<a href="views.html">Views</a>
<p>

<p><a href="http://www.codeigniter.com">Code Igniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 &nbsp;&middot;&nbsp; <a href="http://www.pmachine.com">pMachine, Inc.</a></p>
</div>

</body>
</html>