175a1531e776bff103792cb5d546e4ed7fddbf0c
[living-lab-site.git] / user_guide / general / environments.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
3 <head>
4
5 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6 <title>Handling Multiple Environments : CodeIgniter User Guide</title>
7
8 <style type='text/css' media='all'>@import url('../userguide.css');</style>
9 <link rel='stylesheet' type='text/css' media='all' href='../userguide.css' />
10
11 <script type="text/javascript" src="../nav/nav.js"></script>
12 <script type="text/javascript" src="../nav/prototype.lite.js"></script>
13 <script type="text/javascript" src="../nav/moo.fx.js"></script>
14 <script type="text/javascript" src="../nav/user_guide_menu.js"></script>
15
16 <meta http-equiv='expires' content='-1' />
17 <meta http-equiv= 'pragma' content='no-cache' />
18 <meta name='robots' content='all' />
19 <meta name='author' content='ExpressionEngine Dev Team' />
20 <meta name='description' content='CodeIgniter User Guide' />
21
22 </head>
23 <body>
24
25 <!-- START NAVIGATION -->
26 <div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div>
27 <div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div>
28 <div id="masthead">
29 <table cellpadding="0" cellspacing="0" border="0" style="width:100%">
30 <tr>
31 <td><h1>CodeIgniter User Guide Version 2.0.2</h1></td>
32 <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td>
33 </tr>
34 </table>
35 </div>
36 <!-- END NAVIGATION -->
37
38
39 <!-- START BREADCRUMB -->
40 <table cellpadding="0" cellspacing="0" border="0" style="width:100%">
41 <tr>
42 <td id="breadcrumb">
43 <a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp;
44 <a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp;
45 Handling Multiple Environments
46 </td>
47 <td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="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>
48 </tr>
49 </table>
50 <!-- END BREADCRUMB -->
51
52 <br clear="all" />
53
54
55 <!-- START CONTENT -->
56 <div id="content">
57
58 <h1>Handling Multiple Environments</h1>
59
60 <p>
61     Developers often desire different system behavior depending on whether
62     an application is running in a development or production
63     environment. For example, verbose error output is something that would
64     be useful while developing an application, but it may also pose a security issue when "live".
65 </p>
66
67 <h2>The ENVIRONMENT Constant</h2>
68
69 <p>
70     By default, CodeIgniter comes with the environment constant set to
71     '<kbd>development</kbd>'. At the top of index.php, you will see:
72 </p>
73
74 <code>
75 define('<var>ENVIRONMENT</var>', '<var>development</var>');
76 </code>
77
78 <p>
79     In addition to affecting some basic framework behavior (see the next section),
80     you may use this constant in your own development to differentiate
81     between which environment you are running in.
82 </p>
83
84 <h2>Effects On Default Framework Behavior</h2>
85
86 <p>
87     There are some places in the CodeIgniter system where the <kbd>ENVIRONMENT</kbd>
88     constant is used. This section describes how default framework behavior is
89     affected.
90 </p>
91
92 <h3>Error Reporting</h3>
93
94 <p>
95     Setting the <kbd>ENVIRONMENT</kbd> constant to a value of '<kbd>development</kbd>' will
96     cause all PHP errors to be rendered to the browser when they occur. Conversely,
97     setting the constant to '<kbd>production</kbd>' will disable all error output. Disabling
98     error reporting in production is a <a href="security.html">good security practice</a>.
99 </p>
100
101 <h3>Configuration Files</h3>
102
103 <p>
104     Optionally, you can have CodeIgniter load environment-specific
105     configuration files. This may be useful for managing things like differing API keys
106     across multiple environments. This is described in more detail in the
107     environment section of the <a href="../libraries/config.html#environments">Config Class</a> documentation.
108 </p>
109
110 </div>
111 <!-- END CONTENT -->
112
113
114 <div id="footer">
115 <p>
116 Previous Topic:&nbsp;&nbsp;<a href="managing_apps.html">Managing Applications</a>
117 &nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
118 <a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
119 <a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
120 Next Topic:&nbsp;&nbsp;<a href="alternative_php.html">Alternative PHP Syntax</a>
121 </p>
122 <p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2011 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p>
123 </div>
124
125 </body>
126 </html>