<!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.0b3</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>