diff options
Diffstat (limited to 'user_guide_src/source/installation/upgrade_200.rst')
-rw-r--r-- | user_guide_src/source/installation/upgrade_200.rst | 142 |
1 files changed, 142 insertions, 0 deletions
diff --git a/user_guide_src/source/installation/upgrade_200.rst b/user_guide_src/source/installation/upgrade_200.rst new file mode 100644 index 000000000..0bcbd5c99 --- /dev/null +++ b/user_guide_src/source/installation/upgrade_200.rst @@ -0,0 +1,142 @@ +############################# +Upgrading from 1.7.2 to 2.0.0 +############################# + +Before performing an update you should take your site offline by +replacing the index.php file with a static one. + +******************* +Update Instructions +******************* + +Step 1: Update your CodeIgniter files +===================================== + +Replace all files and directories in your "system" folder **except** +your application folder. + +.. note:: If you have any custom developed files in these folders please + make copies of them first. + +Step 2: Adjust get_dir_file_info() where necessary +===================================================== + +Version 2.0.0 brings a non-backwards compatible change to +get_dir_file_info() in the :doc:`File +Helper <../helpers/file_helper>`. Non-backwards compatible changes +are extremely rare in CodeIgniter, but this one we feel was warranted +due to how easy it was to create serious server performance issues. If +you *need* recursiveness where you are using this helper function, +change such instances, setting the second parameter, $top_level_only +to FALSE:: + + get_dir_file_info('/path/to/directory', FALSE); + +Step 3: Convert your Plugins to Helpers +======================================= + +2.0.0 gets rid of the "Plugin" system as their functionality was +identical to Helpers, but non-extensible. You will need to rename your +plugin files from filename_pi.php to filename_helper.php, move them to +your helpers folder, and change all instances of:: + + $this->load->plugin('foo'); + +to :: + + $this->load->helper('foo'); + + +Step 4: Update stored encrypted data +==================================== + +.. note:: If your application does not use the Encryption library, does + not store Encrypted data permanently, or is on an environment that does + not support Mcrypt, you may skip this step. + +The Encryption library has had a number of improvements, some for +encryption strength and some for performance, that has an unavoidable +consequence of making it no longer possible to decode encrypted data +produced by the original version of this library. To help with the +transition, a new method has been added, encode_from_legacy() that +will decode the data with the original algorithm and return a re-encoded +string using the improved methods. This will enable you to easily +replace stale encrypted data with fresh in your applications, either on +the fly or en masse. + +Please read `how to use this +method <../libraries/encryption.html#legacy>`_ in the Encryption library +documentation. + +Step 5: Remove loading calls for the compatibility helper. +========================================================== + +The compatibility helper has been removed from the CodeIgniter core. All +methods in it should be natively available in supported PHP versions. + +Step 6: Update Class extension +============================== + +All core classes are now prefixed with CI\_. Update Models and +Controllers to extend CI_Model and CI_Controller, respectively. + +Step 7: Update Parent Constructor calls +======================================= + +All native CodeIgniter classes now use the PHP 5 \__construct() +convention. Please update extended libraries to call +parent::\__construct(). + +Step 8: Update your user guide +============================== + +Please replace your local copy of the user guide with the new version, +including the image files. + + +************ +Update Notes +************ + +Please refer to the :ref:`2.0.0 Change Log <2.0.0-changelog>` for full +details, but here are some of the larger changes that are more likely to +impact your code: + +- CodeIgniter now requires PHP 5.1.6. +- Scaffolding has been removed. +- The CAPTCHA plugin in now a :doc:`helper </helpers/captcha_helper>`. +- The JavaScript calendar plugin was removed. +- The *system/cache* and *system/logs* directories are now in the application + directory. +- The Validation class has been removed. Please see the + :doc:`Form Validation library </libraries/form_validation>` +- "default" is now a reserved name. +- The xss_clean() function has moved to the :doc:`Security Class + </libraries/security>`. +- do_xss_clean() now returns FALSE if the uploaded file fails XSS checks. +- The :doc:`Session Class </libraries/sessions>` requires now the use of an + encryption key set in the config file. +- The following deprecated Active Record functions have been removed: + ``orwhere``, ``orlike``, ``groupby``, ``orhaving``, ``orderby``, + ``getwhere``. +- ``_drop_database()`` and ``_create_database()`` functions have been removed + from the db utility drivers. +- The ``dohash()`` function of the :doc:`Security helper + </helpers/security_helper>` + has been renamed to ``do_hash()`` for naming consistency. + +The config folder +================= + +The following files have been changed: + +- config.php +- database.php +- mimes.php +- routes.php +- user_agents.php + +The following files have been added: + +- foreign_chars.php +- profiler.php |