PageRenderTime 80ms CodeModel.GetById 13ms app.highlight 54ms RepoModel.GetById 1ms app.codeStats 0ms

/user_guide/installation/upgrade_300.html

Relevant Search: With Applications for Solr and Elasticsearch

For more in depth reading about search, ranking and generally everything you could ever want to know about how lucene, elasticsearch or solr work under the hood I highly suggest this book. Easily one of the most interesting technical books I have read in a long time. If you are tasked with solving search relevance problems even if not in Solr or Elasticsearch it should be your first reference. Amazon Affiliate Link
https://bitbucket.org/Naked_Yoshi/sq_kanban
HTML | 1330 lines | 1229 code | 100 blank | 1 comment | 0 complexity | 9062d7fb27ea2fe5bcc96abab6f2ebc2 MD5 | raw file

Large files files are truncated, but you can click here to view the full file

  1
  2
  3<!DOCTYPE html>
  4<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
  5<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
  6<head>
  7  <meta charset="utf-8">
  8  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  9  
 10  <title>Upgrading from 2.2.x to 3.0.x &mdash; CodeIgniter 3.1.6 documentation</title>
 11  
 12
 13  
 14  
 15    <link rel="shortcut icon" href="../_static/ci-icon.ico"/>
 16  
 17
 18  
 19  <link href='https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic|Roboto+Slab:400,700|Inconsolata:400,700&subset=latin,cyrillic' rel='stylesheet' type='text/css'>
 20
 21  
 22  
 23    
 24
 25  
 26
 27  
 28  
 29    <link rel="stylesheet" href="../_static/css/citheme.css" type="text/css" />
 30  
 31
 32  
 33        <link rel="index" title="Index"
 34              href="../genindex.html"/>
 35        <link rel="search" title="Search" href="../search.html"/>
 36    <link rel="top" title="CodeIgniter 3.1.6 documentation" href="../index.html"/>
 37        <link rel="up" title="Upgrading From a Previous Version" href="upgrading.html"/>
 38        <link rel="next" title="Upgrading from 2.2.2 to 2.2.3" href="upgrade_223.html"/>
 39        <link rel="prev" title="Upgrading from 3.0.0 to 3.0.1" href="upgrade_301.html"/> 
 40
 41  
 42  <script src="https://cdnjs.cloudflare.com/ajax/libs/modernizr/2.6.2/modernizr.min.js"></script>
 43
 44</head>
 45
 46<body class="wy-body-for-nav" role="document">
 47
 48  <div id="nav">
 49  <div id="nav_inner">
 50    
 51    
 52    
 53      <div id="pulldown-menu" class="ciNav">
 54        <ul>
 55<li class="toctree-l1"><a class="reference internal" href="../general/welcome.html">Welcome to CodeIgniter</a></li>
 56</ul>
 57<ul class="current">
 58<li class="toctree-l1 current"><a class="reference internal" href="index.html">Installation Instructions</a><ul class="current">
 59<li class="toctree-l2"><a class="reference internal" href="downloads.html">Downloading CodeIgniter</a></li>
 60<li class="toctree-l2"><a class="reference internal" href="index.html">Installation Instructions</a></li>
 61<li class="toctree-l2 current"><a class="reference internal" href="upgrading.html">Upgrading From a Previous Version</a></li>
 62<li class="toctree-l2"><a class="reference internal" href="troubleshooting.html">Troubleshooting</a></li>
 63</ul>
 64</li>
 65</ul>
 66<ul>
 67<li class="toctree-l1"><a class="reference internal" href="../overview/index.html">CodeIgniter Overview</a><ul>
 68<li class="toctree-l2"><a class="reference internal" href="../overview/getting_started.html">Getting Started</a></li>
 69<li class="toctree-l2"><a class="reference internal" href="../overview/at_a_glance.html">CodeIgniter at a Glance</a></li>
 70<li class="toctree-l2"><a class="reference internal" href="../overview/features.html">Supported Features</a></li>
 71<li class="toctree-l2"><a class="reference internal" href="../overview/appflow.html">Application Flow Chart</a></li>
 72<li class="toctree-l2"><a class="reference internal" href="../overview/mvc.html">Model-View-Controller</a></li>
 73<li class="toctree-l2"><a class="reference internal" href="../overview/goals.html">Architectural Goals</a></li>
 74</ul>
 75</li>
 76</ul>
 77<ul>
 78<li class="toctree-l1"><a class="reference internal" href="../tutorial/index.html">Tutorial</a><ul>
 79<li class="toctree-l2"><a class="reference internal" href="../tutorial/static_pages.html">Static pages</a></li>
 80<li class="toctree-l2"><a class="reference internal" href="../tutorial/news_section.html">News section</a></li>
 81<li class="toctree-l2"><a class="reference internal" href="../tutorial/create_news_items.html">Create news items</a></li>
 82<li class="toctree-l2"><a class="reference internal" href="../tutorial/conclusion.html">Conclusion</a></li>
 83</ul>
 84</li>
 85</ul>
 86<ul>
 87<li class="toctree-l1"><a class="reference internal" href="../contributing/index.html">Contributing to CodeIgniter</a><ul>
 88<li class="toctree-l2"><a class="reference internal" href="../documentation/index.html">Writing CodeIgniter Documentation</a></li>
 89<li class="toctree-l2"><a class="reference internal" href="../DCO.html">Developer’s Certificate of Origin 1.1</a></li>
 90</ul>
 91</li>
 92</ul>
 93<ul>
 94<li class="toctree-l1"><a class="reference internal" href="../general/index.html">General Topics</a><ul>
 95<li class="toctree-l2"><a class="reference internal" href="../general/urls.html">CodeIgniter URLs</a></li>
 96<li class="toctree-l2"><a class="reference internal" href="../general/controllers.html">Controllers</a></li>
 97<li class="toctree-l2"><a class="reference internal" href="../general/reserved_names.html">Reserved Names</a></li>
 98<li class="toctree-l2"><a class="reference internal" href="../general/views.html">Views</a></li>
 99<li class="toctree-l2"><a class="reference internal" href="../general/models.html">Models</a></li>
100<li class="toctree-l2"><a class="reference internal" href="../general/helpers.html">Helpers</a></li>
101<li class="toctree-l2"><a class="reference internal" href="../general/libraries.html">Using CodeIgniter Libraries</a></li>
102<li class="toctree-l2"><a class="reference internal" href="../general/creating_libraries.html">Creating Libraries</a></li>
103<li class="toctree-l2"><a class="reference internal" href="../general/drivers.html">Using CodeIgniter Drivers</a></li>
104<li class="toctree-l2"><a class="reference internal" href="../general/creating_drivers.html">Creating Drivers</a></li>
105<li class="toctree-l2"><a class="reference internal" href="../general/core_classes.html">Creating Core System Classes</a></li>
106<li class="toctree-l2"><a class="reference internal" href="../general/ancillary_classes.html">Creating Ancillary Classes</a></li>
107<li class="toctree-l2"><a class="reference internal" href="../general/hooks.html">Hooks - Extending the Framework Core</a></li>
108<li class="toctree-l2"><a class="reference internal" href="../general/autoloader.html">Auto-loading Resources</a></li>
109<li class="toctree-l2"><a class="reference internal" href="../general/common_functions.html">Common Functions</a></li>
110<li class="toctree-l2"><a class="reference internal" href="../general/compatibility_functions.html">Compatibility Functions</a></li>
111<li class="toctree-l2"><a class="reference internal" href="../general/routing.html">URI Routing</a></li>
112<li class="toctree-l2"><a class="reference internal" href="../general/errors.html">Error Handling</a></li>
113<li class="toctree-l2"><a class="reference internal" href="../general/caching.html">Caching</a></li>
114<li class="toctree-l2"><a class="reference internal" href="../general/profiling.html">Profiling Your Application</a></li>
115<li class="toctree-l2"><a class="reference internal" href="../general/cli.html">Running via the CLI</a></li>
116<li class="toctree-l2"><a class="reference internal" href="../general/managing_apps.html">Managing your Applications</a></li>
117<li class="toctree-l2"><a class="reference internal" href="../general/environments.html">Handling Multiple Environments</a></li>
118<li class="toctree-l2"><a class="reference internal" href="../general/alternative_php.html">Alternate PHP Syntax for View Files</a></li>
119<li class="toctree-l2"><a class="reference internal" href="../general/security.html">Security</a></li>
120<li class="toctree-l2"><a class="reference internal" href="../general/styleguide.html">PHP Style Guide</a></li>
121</ul>
122</li>
123</ul>
124<ul>
125<li class="toctree-l1"><a class="reference internal" href="../libraries/index.html">Libraries</a><ul>
126<li class="toctree-l2"><a class="reference internal" href="../libraries/benchmark.html">Benchmarking Class</a></li>
127<li class="toctree-l2"><a class="reference internal" href="../libraries/caching.html">Caching Driver</a></li>
128<li class="toctree-l2"><a class="reference internal" href="../libraries/calendar.html">Calendaring Class</a></li>
129<li class="toctree-l2"><a class="reference internal" href="../libraries/cart.html">Shopping Cart Class</a></li>
130<li class="toctree-l2"><a class="reference internal" href="../libraries/config.html">Config Class</a></li>
131<li class="toctree-l2"><a class="reference internal" href="../libraries/email.html">Email Class</a></li>
132<li class="toctree-l2"><a class="reference internal" href="../libraries/encrypt.html">Encrypt Class</a></li>
133<li class="toctree-l2"><a class="reference internal" href="../libraries/encryption.html">Encryption Library</a></li>
134<li class="toctree-l2"><a class="reference internal" href="../libraries/file_uploading.html">File Uploading Class</a></li>
135<li class="toctree-l2"><a class="reference internal" href="../libraries/form_validation.html">Form Validation</a></li>
136<li class="toctree-l2"><a class="reference internal" href="../libraries/ftp.html">FTP Class</a></li>
137<li class="toctree-l2"><a class="reference internal" href="../libraries/image_lib.html">Image Manipulation Class</a></li>
138<li class="toctree-l2"><a class="reference internal" href="../libraries/input.html">Input Class</a></li>
139<li class="toctree-l2"><a class="reference internal" href="../libraries/javascript.html">Javascript Class</a></li>
140<li class="toctree-l2"><a class="reference internal" href="../libraries/language.html">Language Class</a></li>
141<li class="toctree-l2"><a class="reference internal" href="../libraries/loader.html">Loader Class</a></li>
142<li class="toctree-l2"><a class="reference internal" href="../libraries/migration.html">Migrations Class</a></li>
143<li class="toctree-l2"><a class="reference internal" href="../libraries/output.html">Output Class</a></li>
144<li class="toctree-l2"><a class="reference internal" href="../libraries/pagination.html">Pagination Class</a></li>
145<li class="toctree-l2"><a class="reference internal" href="../libraries/parser.html">Template Parser Class</a></li>
146<li class="toctree-l2"><a class="reference internal" href="../libraries/security.html">Security Class</a></li>
147<li class="toctree-l2"><a class="reference internal" href="../libraries/sessions.html">Session Library</a></li>
148<li class="toctree-l2"><a class="reference internal" href="../libraries/table.html">HTML Table Class</a></li>
149<li class="toctree-l2"><a class="reference internal" href="../libraries/trackback.html">Trackback Class</a></li>
150<li class="toctree-l2"><a class="reference internal" href="../libraries/typography.html">Typography Class</a></li>
151<li class="toctree-l2"><a class="reference internal" href="../libraries/unit_testing.html">Unit Testing Class</a></li>
152<li class="toctree-l2"><a class="reference internal" href="../libraries/uri.html">URI Class</a></li>
153<li class="toctree-l2"><a class="reference internal" href="../libraries/user_agent.html">User Agent Class</a></li>
154<li class="toctree-l2"><a class="reference internal" href="../libraries/xmlrpc.html">XML-RPC and XML-RPC Server Classes</a></li>
155<li class="toctree-l2"><a class="reference internal" href="../libraries/zip.html">Zip Encoding Class</a></li>
156</ul>
157</li>
158</ul>
159<ul>
160<li class="toctree-l1"><a class="reference internal" href="../database/index.html">Database Reference</a><ul>
161<li class="toctree-l2"><a class="reference internal" href="../database/examples.html">Quick Start: Usage Examples</a></li>
162<li class="toctree-l2"><a class="reference internal" href="../database/configuration.html">Database Configuration</a></li>
163<li class="toctree-l2"><a class="reference internal" href="../database/connecting.html">Connecting to a Database</a></li>
164<li class="toctree-l2"><a class="reference internal" href="../database/queries.html">Running Queries</a></li>
165<li class="toctree-l2"><a class="reference internal" href="../database/results.html">Generating Query Results</a></li>
166<li class="toctree-l2"><a class="reference internal" href="../database/helpers.html">Query Helper Functions</a></li>
167<li class="toctree-l2"><a class="reference internal" href="../database/query_builder.html">Query Builder Class</a></li>
168<li class="toctree-l2"><a class="reference internal" href="../database/transactions.html">Transactions</a></li>
169<li class="toctree-l2"><a class="reference internal" href="../database/metadata.html">Getting MetaData</a></li>
170<li class="toctree-l2"><a class="reference internal" href="../database/call_function.html">Custom Function Calls</a></li>
171<li class="toctree-l2"><a class="reference internal" href="../database/caching.html">Query Caching</a></li>
172<li class="toctree-l2"><a class="reference internal" href="../database/forge.html">Database Manipulation with Database Forge</a></li>
173<li class="toctree-l2"><a class="reference internal" href="../database/utilities.html">Database Utilities Class</a></li>
174<li class="toctree-l2"><a class="reference internal" href="../database/db_driver_reference.html">Database Driver Reference</a></li>
175</ul>
176</li>
177</ul>
178<ul>
179<li class="toctree-l1"><a class="reference internal" href="../helpers/index.html">Helpers</a><ul>
180<li class="toctree-l2"><a class="reference internal" href="../helpers/array_helper.html">Array Helper</a></li>
181<li class="toctree-l2"><a class="reference internal" href="../helpers/captcha_helper.html">CAPTCHA Helper</a></li>
182<li class="toctree-l2"><a class="reference internal" href="../helpers/cookie_helper.html">Cookie Helper</a></li>
183<li class="toctree-l2"><a class="reference internal" href="../helpers/date_helper.html">Date Helper</a></li>
184<li class="toctree-l2"><a class="reference internal" href="../helpers/directory_helper.html">Directory Helper</a></li>
185<li class="toctree-l2"><a class="reference internal" href="../helpers/download_helper.html">Download Helper</a></li>
186<li class="toctree-l2"><a class="reference internal" href="../helpers/email_helper.html">Email Helper</a></li>
187<li class="toctree-l2"><a class="reference internal" href="../helpers/file_helper.html">File Helper</a></li>
188<li class="toctree-l2"><a class="reference internal" href="../helpers/form_helper.html">Form Helper</a></li>
189<li class="toctree-l2"><a class="reference internal" href="../helpers/html_helper.html">HTML Helper</a></li>
190<li class="toctree-l2"><a class="reference internal" href="../helpers/inflector_helper.html">Inflector Helper</a></li>
191<li class="toctree-l2"><a class="reference internal" href="../helpers/language_helper.html">Language Helper</a></li>
192<li class="toctree-l2"><a class="reference internal" href="../helpers/number_helper.html">Number Helper</a></li>
193<li class="toctree-l2"><a class="reference internal" href="../helpers/path_helper.html">Path Helper</a></li>
194<li class="toctree-l2"><a class="reference internal" href="../helpers/security_helper.html">Security Helper</a></li>
195<li class="toctree-l2"><a class="reference internal" href="../helpers/smiley_helper.html">Smiley Helper</a></li>
196<li class="toctree-l2"><a class="reference internal" href="../helpers/string_helper.html">String Helper</a></li>
197<li class="toctree-l2"><a class="reference internal" href="../helpers/text_helper.html">Text Helper</a></li>
198<li class="toctree-l2"><a class="reference internal" href="../helpers/typography_helper.html">Typography Helper</a></li>
199<li class="toctree-l2"><a class="reference internal" href="../helpers/url_helper.html">URL Helper</a></li>
200<li class="toctree-l2"><a class="reference internal" href="../helpers/xml_helper.html">XML Helper</a></li>
201</ul>
202</li>
203</ul>
204
205      </div>
206    
207      
208  </div>
209</div>
210<div id="nav2">
211  <a href="#" id="openToc">
212    <img src="data:image/jpeg;base64,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" title="Toggle Table of Contents" alt="Toggle Table of Contents" />
213  </a>
214</div>
215
216  <div class="wy-grid-for-nav">
217
218    
219    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
220      <div class="wy-side-nav-search">
221        
222          <a href="../index.html" class="fa fa-home"> CodeIgniter</a>
223        
224        
225<div role="search">
226  <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
227    <input type="text" name="q" placeholder="Search docs" />
228    <input type="hidden" name="check_keywords" value="yes" />
229    <input type="hidden" name="area" value="default" />
230  </form>
231</div>
232      </div>
233
234      <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
235        
236          
237          
238              <ul>
239<li class="toctree-l1"><a class="reference internal" href="../general/welcome.html">Welcome to CodeIgniter</a></li>
240</ul>
241<ul class="current">
242<li class="toctree-l1 current"><a class="reference internal" href="index.html">Installation Instructions</a><ul class="current">
243<li class="toctree-l2"><a class="reference internal" href="downloads.html">Downloading CodeIgniter</a></li>
244<li class="toctree-l2"><a class="reference internal" href="index.html">Installation Instructions</a></li>
245<li class="toctree-l2 current"><a class="reference internal" href="upgrading.html">Upgrading From a Previous Version</a></li>
246<li class="toctree-l2"><a class="reference internal" href="troubleshooting.html">Troubleshooting</a></li>
247</ul>
248</li>
249</ul>
250<ul>
251<li class="toctree-l1"><a class="reference internal" href="../overview/index.html">CodeIgniter Overview</a><ul>
252<li class="toctree-l2"><a class="reference internal" href="../overview/getting_started.html">Getting Started</a></li>
253<li class="toctree-l2"><a class="reference internal" href="../overview/at_a_glance.html">CodeIgniter at a Glance</a></li>
254<li class="toctree-l2"><a class="reference internal" href="../overview/features.html">Supported Features</a></li>
255<li class="toctree-l2"><a class="reference internal" href="../overview/appflow.html">Application Flow Chart</a></li>
256<li class="toctree-l2"><a class="reference internal" href="../overview/mvc.html">Model-View-Controller</a></li>
257<li class="toctree-l2"><a class="reference internal" href="../overview/goals.html">Architectural Goals</a></li>
258</ul>
259</li>
260</ul>
261<ul>
262<li class="toctree-l1"><a class="reference internal" href="../tutorial/index.html">Tutorial</a><ul>
263<li class="toctree-l2"><a class="reference internal" href="../tutorial/static_pages.html">Static pages</a></li>
264<li class="toctree-l2"><a class="reference internal" href="../tutorial/news_section.html">News section</a></li>
265<li class="toctree-l2"><a class="reference internal" href="../tutorial/create_news_items.html">Create news items</a></li>
266<li class="toctree-l2"><a class="reference internal" href="../tutorial/conclusion.html">Conclusion</a></li>
267</ul>
268</li>
269</ul>
270<ul>
271<li class="toctree-l1"><a class="reference internal" href="../contributing/index.html">Contributing to CodeIgniter</a><ul>
272<li class="toctree-l2"><a class="reference internal" href="../documentation/index.html">Writing CodeIgniter Documentation</a></li>
273<li class="toctree-l2"><a class="reference internal" href="../DCO.html">Developer’s Certificate of Origin 1.1</a></li>
274</ul>
275</li>
276</ul>
277<ul>
278<li class="toctree-l1"><a class="reference internal" href="../general/index.html">General Topics</a><ul>
279<li class="toctree-l2"><a class="reference internal" href="../general/urls.html">CodeIgniter URLs</a></li>
280<li class="toctree-l2"><a class="reference internal" href="../general/controllers.html">Controllers</a></li>
281<li class="toctree-l2"><a class="reference internal" href="../general/reserved_names.html">Reserved Names</a></li>
282<li class="toctree-l2"><a class="reference internal" href="../general/views.html">Views</a></li>
283<li class="toctree-l2"><a class="reference internal" href="../general/models.html">Models</a></li>
284<li class="toctree-l2"><a class="reference internal" href="../general/helpers.html">Helpers</a></li>
285<li class="toctree-l2"><a class="reference internal" href="../general/libraries.html">Using CodeIgniter Libraries</a></li>
286<li class="toctree-l2"><a class="reference internal" href="../general/creating_libraries.html">Creating Libraries</a></li>
287<li class="toctree-l2"><a class="reference internal" href="../general/drivers.html">Using CodeIgniter Drivers</a></li>
288<li class="toctree-l2"><a class="reference internal" href="../general/creating_drivers.html">Creating Drivers</a></li>
289<li class="toctree-l2"><a class="reference internal" href="../general/core_classes.html">Creating Core System Classes</a></li>
290<li class="toctree-l2"><a class="reference internal" href="../general/ancillary_classes.html">Creating Ancillary Classes</a></li>
291<li class="toctree-l2"><a class="reference internal" href="../general/hooks.html">Hooks - Extending the Framework Core</a></li>
292<li class="toctree-l2"><a class="reference internal" href="../general/autoloader.html">Auto-loading Resources</a></li>
293<li class="toctree-l2"><a class="reference internal" href="../general/common_functions.html">Common Functions</a></li>
294<li class="toctree-l2"><a class="reference internal" href="../general/compatibility_functions.html">Compatibility Functions</a></li>
295<li class="toctree-l2"><a class="reference internal" href="../general/routing.html">URI Routing</a></li>
296<li class="toctree-l2"><a class="reference internal" href="../general/errors.html">Error Handling</a></li>
297<li class="toctree-l2"><a class="reference internal" href="../general/caching.html">Caching</a></li>
298<li class="toctree-l2"><a class="reference internal" href="../general/profiling.html">Profiling Your Application</a></li>
299<li class="toctree-l2"><a class="reference internal" href="../general/cli.html">Running via the CLI</a></li>
300<li class="toctree-l2"><a class="reference internal" href="../general/managing_apps.html">Managing your Applications</a></li>
301<li class="toctree-l2"><a class="reference internal" href="../general/environments.html">Handling Multiple Environments</a></li>
302<li class="toctree-l2"><a class="reference internal" href="../general/alternative_php.html">Alternate PHP Syntax for View Files</a></li>
303<li class="toctree-l2"><a class="reference internal" href="../general/security.html">Security</a></li>
304<li class="toctree-l2"><a class="reference internal" href="../general/styleguide.html">PHP Style Guide</a></li>
305</ul>
306</li>
307</ul>
308<ul>
309<li class="toctree-l1"><a class="reference internal" href="../libraries/index.html">Libraries</a><ul>
310<li class="toctree-l2"><a class="reference internal" href="../libraries/benchmark.html">Benchmarking Class</a></li>
311<li class="toctree-l2"><a class="reference internal" href="../libraries/caching.html">Caching Driver</a></li>
312<li class="toctree-l2"><a class="reference internal" href="../libraries/calendar.html">Calendaring Class</a></li>
313<li class="toctree-l2"><a class="reference internal" href="../libraries/cart.html">Shopping Cart Class</a></li>
314<li class="toctree-l2"><a class="reference internal" href="../libraries/config.html">Config Class</a></li>
315<li class="toctree-l2"><a class="reference internal" href="../libraries/email.html">Email Class</a></li>
316<li class="toctree-l2"><a class="reference internal" href="../libraries/encrypt.html">Encrypt Class</a></li>
317<li class="toctree-l2"><a class="reference internal" href="../libraries/encryption.html">Encryption Library</a></li>
318<li class="toctree-l2"><a class="reference internal" href="../libraries/file_uploading.html">File Uploading Class</a></li>
319<li class="toctree-l2"><a class="reference internal" href="../libraries/form_validation.html">Form Validation</a></li>
320<li class="toctree-l2"><a class="reference internal" href="../libraries/ftp.html">FTP Class</a></li>
321<li class="toctree-l2"><a class="reference internal" href="../libraries/image_lib.html">Image Manipulation Class</a></li>
322<li class="toctree-l2"><a class="reference internal" href="../libraries/input.html">Input Class</a></li>
323<li class="toctree-l2"><a class="reference internal" href="../libraries/javascript.html">Javascript Class</a></li>
324<li class="toctree-l2"><a class="reference internal" href="../libraries/language.html">Language Class</a></li>
325<li class="toctree-l2"><a class="reference internal" href="../libraries/loader.html">Loader Class</a></li>
326<li class="toctree-l2"><a class="reference internal" href="../libraries/migration.html">Migrations Class</a></li>
327<li class="toctree-l2"><a class="reference internal" href="../libraries/output.html">Output Class</a></li>
328<li class="toctree-l2"><a class="reference internal" href="../libraries/pagination.html">Pagination Class</a></li>
329<li class="toctree-l2"><a class="reference internal" href="../libraries/parser.html">Template Parser Class</a></li>
330<li class="toctree-l2"><a class="reference internal" href="../libraries/security.html">Security Class</a></li>
331<li class="toctree-l2"><a class="reference internal" href="../libraries/sessions.html">Session Library</a></li>
332<li class="toctree-l2"><a class="reference internal" href="../libraries/table.html">HTML Table Class</a></li>
333<li class="toctree-l2"><a class="reference internal" href="../libraries/trackback.html">Trackback Class</a></li>
334<li class="toctree-l2"><a class="reference internal" href="../libraries/typography.html">Typography Class</a></li>
335<li class="toctree-l2"><a class="reference internal" href="../libraries/unit_testing.html">Unit Testing Class</a></li>
336<li class="toctree-l2"><a class="reference internal" href="../libraries/uri.html">URI Class</a></li>
337<li class="toctree-l2"><a class="reference internal" href="../libraries/user_agent.html">User Agent Class</a></li>
338<li class="toctree-l2"><a class="reference internal" href="../libraries/xmlrpc.html">XML-RPC and XML-RPC Server Classes</a></li>
339<li class="toctree-l2"><a class="reference internal" href="../libraries/zip.html">Zip Encoding Class</a></li>
340</ul>
341</li>
342</ul>
343<ul>
344<li class="toctree-l1"><a class="reference internal" href="../database/index.html">Database Reference</a><ul>
345<li class="toctree-l2"><a class="reference internal" href="../database/examples.html">Quick Start: Usage Examples</a></li>
346<li class="toctree-l2"><a class="reference internal" href="../database/configuration.html">Database Configuration</a></li>
347<li class="toctree-l2"><a class="reference internal" href="../database/connecting.html">Connecting to a Database</a></li>
348<li class="toctree-l2"><a class="reference internal" href="../database/queries.html">Running Queries</a></li>
349<li class="toctree-l2"><a class="reference internal" href="../database/results.html">Generating Query Results</a></li>
350<li class="toctree-l2"><a class="reference internal" href="../database/helpers.html">Query Helper Functions</a></li>
351<li class="toctree-l2"><a class="reference internal" href="../database/query_builder.html">Query Builder Class</a></li>
352<li class="toctree-l2"><a class="reference internal" href="../database/transactions.html">Transactions</a></li>
353<li class="toctree-l2"><a class="reference internal" href="../database/metadata.html">Getting MetaData</a></li>
354<li class="toctree-l2"><a class="reference internal" href="../database/call_function.html">Custom Function Calls</a></li>
355<li class="toctree-l2"><a class="reference internal" href="../database/caching.html">Query Caching</a></li>
356<li class="toctree-l2"><a class="reference internal" href="../database/forge.html">Database Manipulation with Database Forge</a></li>
357<li class="toctree-l2"><a class="reference internal" href="../database/utilities.html">Database Utilities Class</a></li>
358<li class="toctree-l2"><a class="reference internal" href="../database/db_driver_reference.html">Database Driver Reference</a></li>
359</ul>
360</li>
361</ul>
362<ul>
363<li class="toctree-l1"><a class="reference internal" href="../helpers/index.html">Helpers</a><ul>
364<li class="toctree-l2"><a class="reference internal" href="../helpers/array_helper.html">Array Helper</a></li>
365<li class="toctree-l2"><a class="reference internal" href="../helpers/captcha_helper.html">CAPTCHA Helper</a></li>
366<li class="toctree-l2"><a class="reference internal" href="../helpers/cookie_helper.html">Cookie Helper</a></li>
367<li class="toctree-l2"><a class="reference internal" href="../helpers/date_helper.html">Date Helper</a></li>
368<li class="toctree-l2"><a class="reference internal" href="../helpers/directory_helper.html">Directory Helper</a></li>
369<li class="toctree-l2"><a class="reference internal" href="../helpers/download_helper.html">Download Helper</a></li>
370<li class="toctree-l2"><a class="reference internal" href="../helpers/email_helper.html">Email Helper</a></li>
371<li class="toctree-l2"><a class="reference internal" href="../helpers/file_helper.html">File Helper</a></li>
372<li class="toctree-l2"><a class="reference internal" href="../helpers/form_helper.html">Form Helper</a></li>
373<li class="toctree-l2"><a class="reference internal" href="../helpers/html_helper.html">HTML Helper</a></li>
374<li class="toctree-l2"><a class="reference internal" href="../helpers/inflector_helper.html">Inflector Helper</a></li>
375<li class="toctree-l2"><a class="reference internal" href="../helpers/language_helper.html">Language Helper</a></li>
376<li class="toctree-l2"><a class="reference internal" href="../helpers/number_helper.html">Number Helper</a></li>
377<li class="toctree-l2"><a class="reference internal" href="../helpers/path_helper.html">Path Helper</a></li>
378<li class="toctree-l2"><a class="reference internal" href="../helpers/security_helper.html">Security Helper</a></li>
379<li class="toctree-l2"><a class="reference internal" href="../helpers/smiley_helper.html">Smiley Helper</a></li>
380<li class="toctree-l2"><a class="reference internal" href="../helpers/string_helper.html">String Helper</a></li>
381<li class="toctree-l2"><a class="reference internal" href="../helpers/text_helper.html">Text Helper</a></li>
382<li class="toctree-l2"><a class="reference internal" href="../helpers/typography_helper.html">Typography Helper</a></li>
383<li class="toctree-l2"><a class="reference internal" href="../helpers/url_helper.html">URL Helper</a></li>
384<li class="toctree-l2"><a class="reference internal" href="../helpers/xml_helper.html">XML Helper</a></li>
385</ul>
386</li>
387</ul>
388
389          
390        
391      </div>
392      &nbsp;
393    </nav>
394
395    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
396
397      
398      <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
399        <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
400        <a href="../index.html">CodeIgniter</a>
401      </nav>
402
403
404      
405      <div class="wy-nav-content">
406        <div class="rst-content">
407          <div role="navigation" aria-label="breadcrumbs navigation">
408  <ul class="wy-breadcrumbs">
409    <li><a href="../index.html">Docs</a> &raquo;</li>
410      
411        <li><a href="index.html">Installation Instructions</a> &raquo;</li>
412      
413        <li><a href="upgrading.html">Upgrading From a Previous Version</a> &raquo;</li>
414      
415    <li>Upgrading from 2.2.x to 3.0.x</li>
416    <li class="wy-breadcrumbs-aside">
417      
418    </li>
419    <div style="float:right;margin-left:5px;" id="closeMe">
420      <img title="Classic Layout" alt="classic layout" src="data:image/gif;base64,R0lGODlhFAAUAJEAAAAAADMzM////wAAACH5BAUUAAIALAAAAAAUABQAAAImlI+py+0PU5gRBRDM3DxbWoXis42X13USOLauUIqnlsaH/eY6UwAAOw==" />
421    </div>
422  </ul>
423  <hr/>
424</div>
425          <div role="main" class="document">
426            
427  <div class="section" id="upgrading-from-2-2-x-to-3-0-x">
428<h1>Upgrading from 2.2.x to 3.0.x<a class="headerlink" href="#upgrading-from-2-2-x-to-3-0-x" title="Permalink to this headline"></a></h1>
429<p>Before performing an update you should take your site offline by replacing the index.php file with a static one.</p>
430<div class="section" id="step-1-update-your-codeigniter-files">
431<h2>Step 1: Update your CodeIgniter files<a class="headerlink" href="#step-1-update-your-codeigniter-files" title="Permalink to this headline"></a></h2>
432<p><strong>Replace</strong> all files and directories in your <em>system/</em> directory and
433replace your index.php file. If any modifications were made to your
434index.php they will need to be made fresh in this new one.</p>
435<div class="admonition important">
436<p class="first admonition-title">Important</p>
437<p class="last">You have to delete the old <em>system/</em> directory first and
438then put the new one in its place. A simple copy-paste may cause
439issues.</p>
440</div>
441<div class="admonition note">
442<p class="first admonition-title">Note</p>
443<p class="last">If you have any custom developed files in these folders please
444make copies of them first.</p>
445</div>
446</div>
447<div class="section" id="step-2-update-your-classes-file-names">
448<h2>Step 2: Update your classes file names<a class="headerlink" href="#step-2-update-your-classes-file-names" title="Permalink to this headline"></a></h2>
449<p>Starting with CodeIgniter 3.0, all class filenames (libraries, drivers, controllers
450and models) must be named in a Ucfirst-like manner or in other words - they must
451start with a capital letter.</p>
452<p>For example, if you have the following library file:</p>
453<blockquote>
454<div>application/libraries/mylibrary.php</div></blockquote>
455<p>… then you’ll have to rename it to:</p>
456<blockquote>
457<div>application/libraries/Mylibrary.php</div></blockquote>
458<p>The same goes for driver libraries and extensions and/or overrides of CodeIgniter’s
459own libraries and core classes.</p>
460<blockquote>
461<div>application/libraries/MY_email.php
462application/core/MY_log.php</div></blockquote>
463<p>The above files should respectively be renamed to the following:</p>
464<blockquote>
465<div>application/libraries/MY_Email.php
466application/core/MY_Log.php</div></blockquote>
467<p>Controllers:</p>
468<blockquote>
469<div>application/controllers/welcome.php     -&gt;      application/controllers/Welcome.php</div></blockquote>
470<p>Models:</p>
471<blockquote>
472<div>application/models/misc_model.php       -&gt;      application/models/Misc_model.php</div></blockquote>
473<p>Please note that this DOES NOT affect directories, configuration files, views,
474helpers, hooks and anything else - it is only applied to classes.</p>
475<p>You must now follow just one simple rule - class names in Ucfirst and everything else
476in lowercase.</p>
477</div>
478<div class="section" id="step-3-replace-config-mimes-php">
479<h2>Step 3: Replace config/mimes.php<a class="headerlink" href="#step-3-replace-config-mimes-php" title="Permalink to this headline"></a></h2>
480<p>This config file has been updated to contain more user mime-types, please copy
481it to <em>application/config/mimes.php</em>.</p>
482</div>
483<div class="section" id="step-4-remove-autoload-core-from-your-config-autoload-php">
484<h2>Step 4: Remove $autoload[‘core’] from your config/autoload.php<a class="headerlink" href="#step-4-remove-autoload-core-from-your-config-autoload-php" title="Permalink to this headline"></a></h2>
485<p>Use of the <code class="docutils literal"><span class="pre">$autoload['core']</span></code> config array has been deprecated as of CodeIgniter 1.4.1 and is now removed.
486Move any entries that you might have listed there to <code class="docutils literal"><span class="pre">$autoload['libraries']</span></code> instead.</p>
487</div>
488<div class="section" id="step-5-move-your-log-class-overrides-or-extensions">
489<h2>Step 5: Move your Log class overrides or extensions<a class="headerlink" href="#step-5-move-your-log-class-overrides-or-extensions" title="Permalink to this headline"></a></h2>
490<p>The Log Class is considered as a “core” class and is now located in the
491<strong>system/core/</strong> directory. Therefore, in order for your Log class overrides
492or extensions to work, you need to move them to <strong>application/core/</strong>:</p>
493<blockquote>
494<div>application/libraries/Log.php -&gt; application/core/Log.php
495application/libraries/MY_Log.php -&gt; application/core/MY_Log.php</div></blockquote>
496</div>
497<div class="section" id="step-6-update-your-session-library-usage">
498<h2>Step 6: Update your Session library usage<a class="headerlink" href="#step-6-update-your-session-library-usage" title="Permalink to this headline"></a></h2>
499<p>The <a class="reference internal" href="../libraries/sessions.html"><span class="doc">Session Library</span></a> has been completely
500re-written in CodeIgniter 3 and now comes with a bunch of new features,
501but that also means that there are changes that you should make …</p>
502<p>Most notably, the library now uses separate storage drivers instead of
503always relying on (encrypted) cookies.
504In fact, cookies as storage have now been removed and you must always use
505some kind of server-side storage engine, with the file-system being the
506default option.</p>
507<p>The Session Class now utilizes PHP’s own mechanisms for building custom
508session handlers, which also means that your session data is now
509accessible via the <code class="docutils literal"><span class="pre">$_SESSION</span></code> superglobal (though, we’ve kept the
510possibility to use it as “userdata”, like you’ve done until now).</p>
511<p>A few configuration options have been removed and a few have been added.
512You should really read the whole <a class="reference internal" href="../libraries/sessions.html"><span class="doc">Session library manual</span></a> for the details, but here’s a short list of changes
513that you should make:</p>
514<blockquote>
515<div><ul>
516<li><p class="first">Set your <code class="docutils literal"><span class="pre">$config['sess_driver']</span></code> value</p>
517<p>It will default to ‘files’, unless you’ve previously used
518<code class="docutils literal"><span class="pre">$config['sess_use_database']</span></code>, in which case it will be set to
519‘database’.</p>
520</li>
521<li><p class="first">Set a <code class="docutils literal"><span class="pre">$config['sess_save_path']</span></code> value</p>
522<p>For the ‘database’ driver, a fallback to <code class="docutils literal"><span class="pre">$config['sess_table_name']</span></code>
523is in place, but otherwise requires you to read the manual for the
524specific driver of your choice.</p>
525</li>
526<li><p class="first">Update your <code class="docutils literal"><span class="pre">ci_sessions</span></code> table (‘database’ driver only)</p>
527<p>The table structure has changed a bit, and more specifically:</p>
528<blockquote>
529<div><ul class="simple">
530<li><code class="docutils literal"><span class="pre">session_id</span></code> field is renamed to <code class="docutils literal"><span class="pre">id</span></code></li>
531<li><code class="docutils literal"><span class="pre">user_agent</span></code> field is dropped</li>
532<li><code class="docutils literal"><span class="pre">user_data</span></code> field is renamed to <code class="docutils literal"><span class="pre">data</span></code> and under MySQL is now of type BLOB</li>
533<li><code class="docutils literal"><span class="pre">last_activity</span></code> field is renamed to <code class="docutils literal"><span class="pre">timestamp</span></code></li>
534</ul>
535</div></blockquote>
536<p>This is accompanied by a slight change in the table indexes too, so
537please read the manual about the <a class="reference external" href="../libraries/sessions.html#database-driver">Session Database Driver</a> for more information.</p>
538<div class="admonition important">
539<p class="first admonition-title">Important</p>
540<p class="last">Only MySQL and PostgreSQL are officially supported
541now. Other databases may still work, but due to lack of advisory
542locking features, they are unsafe for concurrent requests and
543you should consider using another driver instead.</p>
544</div>
545</li>
546<li><p class="first">Remove <code class="docutils literal"><span class="pre">$config['sess_match_useragent']</span></code></p>
547<p>The user-agent string is input supplied by the user’s browser, or in
548other words: client side input. As such, it is an ineffective feature
549and hence why it has been removed.</p>
550</li>
551<li><p class="first">Remove <code class="docutils literal"><span class="pre">$config['sess_encrypt_cookie']</span></code></p>
552<p>As already noted, the library no longer uses cookies as a storage
553mechanism, which renders this option useless.</p>
554</li>
555<li><p class="first">Remove <code class="docutils literal"><span class="pre">$config['sess_expire_on_close']</span></code></p>
556<p>This option is still usable, but only for backwards compatibility
557purposes and it should be otherwise removed. The same effect is
558achieved by setting <code class="docutils literal"><span class="pre">$config['sess_expiration']</span></code> to 0.</p>
559</li>
560<li><p class="first">Check “flashdata” for collisions with “userdata”</p>
561<p>Flashdata is now just regular “userdata”, only marked for deletion on
562the next request. In other words: you can’t have both “userdata” and
563“flashdata” with the same name, because it’s the same thing.</p>
564</li>
565<li><p class="first">Check usage of session metadata</p>
566<p>Previously, you could access the ‘session_id’, ‘ip_address’,
567‘user_agent’ and ‘last_activity’ metadata items as userdata.
568This is no longer possible, and you should read the notes about
569<a class="reference external" href="../libraries/sessions.html#accessing-session-metadata">Session Metadata</a>
570if your application relies on those values.</p>
571</li>
572<li><p class="first">Check <code class="docutils literal"><span class="pre">unset_userdata()</span></code> usage</p>
573<p>Previously, this method used to accept an associative array of
574<code class="docutils literal"><span class="pre">'key'</span> <span class="pre">=&gt;</span> <span class="pre">'dummy</span> <span class="pre">value'</span></code> pairs for unsetting multiple keys. That
575however makes no sense and you now have to pass <em>only</em> the keys, as
576the elements of an array.</p>
577<div class="highlight-ci"><div class="highlight"><pre><span></span><span class="c1">// Old</span>
578<span class="nv">$this</span><span class="o">-&gt;</span><span class="na">session</span><span class="o">-&gt;</span><span class="na">unset_userdata</span><span class="p">(</span><span class="k">array</span><span class="p">(</span><span class="s1">&#39;item&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="s1">&#39;item2&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;&#39;</span><span class="p">));</span>
579
580<span class="c1">// New</span>
581<span class="nv">$this</span><span class="o">-&gt;</span><span class="na">session</span><span class="o">-&gt;</span><span class="na">unset_userdata</span><span class="p">(</span><span class="k">array</span><span class="p">(</span><span class="s1">&#39;item&#39;</span><span class="p">,</span> <span class="s1">&#39;item2&#39;</span><span class="p">));</span>
582</pre></div>
583</div>
584</li>
585</ul>
586</div></blockquote>
587<p>Finally, if you have written a Session extension, you must now move it to
588the <em>application/libraries/Session/</em> directory, although chances are that
589it will now also have to be re-factored.</p>
590</div>
591<div class="section" id="step-7-update-your-config-database-php">
592<h2>Step 7: Update your config/database.php<a class="headerlink" href="#step-7-update-your-config-database-php" title="Permalink to this headline"></a></h2>
593<p>Due to 3.0.0’s renaming of Active Record to Query Builder, inside your
594<strong>config/database.php</strong>, you will need to rename the <code class="docutils literal"><span class="pre">$active_record</span></code>
595variable to <code class="docutils literal"><span class="pre">$query_builder</span></code>:</p>
596<div class="highlight-ci"><div class="highlight"><pre><span></span><span class="nv">$active_group</span> <span class="o">=</span> <span class="s1">&#39;default&#39;</span><span class="p">;</span>
597<span class="c1">// $active_record = TRUE;</span>
598<span class="nv">$query_builder</span> <span class="o">=</span> <span class="k">TRUE</span><span class="p">;</span>
599</pre></div>
600</div>
601</div>
602<div class="section" id="step-8-replace-your-error-templates">
603<h2>Step 8: Replace your error templates<a class="headerlink" href="#step-8-replace-your-error-templates" title="Permalink to this headline"></a></h2>
604<p>In CodeIgniter 3.0, the error templates are now considered as views and have been moved to the
605<em>application/views/errors</em> directory.</p>
606<p>Furthermore, we’ve added support for CLI error templates in plain-text format that unlike HTML,
607is suitable for the command line. This of course requires another level of separation.</p>
608<p>It is safe to move your old templates from <em>application/errors</em> to <em>application/views/errors/html</em>,
609but you’ll have to copy the new <em>application/views/errors/cli</em> directory from the CodeIgniter archive.</p>
610</div>
611<div class="section" id="step-9-update-your-config-routes-php-file">
612<h2>Step 9: Update your config/routes.php file<a class="headerlink" href="#step-9-update-your-config-routes-php-file" title="Permalink to this headline"></a></h2>
613<div class="section" id="routes-containing-any">
614<h3>Routes containing :any<a class="headerlink" href="#routes-containing-any" title="Permalink to this headline"></a></h3>
615<p>Historically, CodeIgniter has always provided the <strong>:any</strong> wildcard in
616routing, with the intention of providing a way to match any character
617<strong>within</strong> an URI segment.</p>
618<p>However, the <strong>:any</strong> wildcard is actually just an alias for a regular
619expression and used to be executed in that manner as <strong>.+</strong>. This is
620considered a bug, as it also matches the / (forward slash) character, which
621is the URI segment delimiter and that was never the intention.</p>
622<p>In CodeIgniter 3, the <strong>:any</strong> wildcard will now represent <strong>[^/]+</strong>, so
623that it will not match a forward slash.</p>
624<p>There are certainly many developers that have utilized this bug as an actual
625feature. If you’re one of them and want to match a forward slash, please use
626the <strong>.+</strong> regular expression:</p>
627<div class="highlight-ci"><div class="highlight"><pre><span></span><span class="p">(</span><span class="o">.+</span><span class="p">)</span>    <span class="c1">// matches ANYTHING</span>
628<span class="p">(</span><span class="o">:</span><span class="nx">any</span><span class="p">)</span>  <span class="c1">// matches any character, except for &#39;/&#39;</span>
629</pre></div>
630</div>
631</div>
632<div class="section" id="directories-and-default-controller-404-override">
633<h3>Directories and ‘default_controller’, ‘404_override’<a class="headerlink" href="#directories-and-default-controller-404-override" title="Permalink to this headline"></a></h3>
634<p>As you should know, the <code class="docutils literal"><span class="pre">$route['default_controller']</span></code> and
635<code class="docutils literal"><span class="pre">$route['404_override']</span></code> settings accept not only a controller name, but
636also <em>controller/method</em> pairs. However, a bug in the routing logic has
637made it possible for some users to use that as <em>directory/controller</em>
638instead.</p>
639<p>As already said, this behavior was incidental and was never intended, nor
640documented. If you’ve relied on it, your application will break with
641CodeIgniter 3.0.</p>
642<p>Another notable change in version 3 is that ‘default_controller’ and
643‘404_override’ are now applied <em>per directory</em>. To explain what this means,
644let’s take the following example:</p>
645<div class="highlight-ci"><div class="highlight"><pre><span></span><span class="nv">$route</span><span class="p">[</span><span class="s1">&#39;default_controller&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;main&#39;</span><span class="p">;</span>
646</pre></div>
647</div>
648<p>Now, assuming that your website is located at <em>example.com</em>, you already
649know that if a user visits <code class="docutils literal"><span class="pre">http://example.com/</span></code>, the above setting will
650cause your ‘Main’ controller to be loaded.</p>
651<p>However, what happens if you have an <em>application/controllers/admin/</em>
652directory and the user visits <code class="docutils literal"><span class="pre">http://example.com/admin/</span></code>?
653In CodeIgniter 3, the router will l…

Large files files are truncated, but you can click here to view the full file