diff options
Diffstat (limited to 'user_guide_src/source/installation/upgrade_310.rst')
-rw-r--r-- | user_guide_src/source/installation/upgrade_310.rst | 110 |
1 files changed, 18 insertions, 92 deletions
diff --git a/user_guide_src/source/installation/upgrade_310.rst b/user_guide_src/source/installation/upgrade_310.rst index 36f69d01b..cae814327 100644 --- a/user_guide_src/source/installation/upgrade_310.rst +++ b/user_guide_src/source/installation/upgrade_310.rst @@ -1,5 +1,5 @@ ############################# -Upgrading from 3.0.x to 3.1.x +Upgrading from 3.0.6 to 3.1.0 ############################# Before performing an update you should take your site offline by @@ -13,100 +13,26 @@ Replace all files and directories in your *system/* directory. .. note:: If you have any custom developed files in these directories, please make copies of them first. -Step 2: Change database connection handling -=========================================== +Step 2: Check your PHP version +============================== -"Loading" a database, whether by using the *config/autoload.php* settings -or manually via calling ``$this->load->database()`` or the less-known -``DB()`` function, will now throw a ``RuntimeException`` in case of a -failure. +We recommend always running versions that are `currently supported +<https://secure.php.net/supported-versions.php>`_, which right now is at least PHP 5.6. -In addition, being unable to set the configured character set is now also -considered a connection failure. +PHP 5.2.x versions are now officially not supported by CodeIgniter, and while 5.3.7+ +may be at least runnable, we strongly discourage you from using any PHP versions below +the ones listed on the `PHP.net Supported Versions <https://secure.php.net/supported-versions.php>`_ +page. -.. note:: This has been the case for most database drivers in the in the - past as well (i.e. all but the 'mysql', 'mysqli' and 'postgre' - drivers). +Step 3: If you're using the 'odbc' database driver, check for usage of Query Builder +==================================================================================== -What this means is that if you're unable to connect to a database, or -have an erroneous character set configured, CodeIgniter will no longer -fail silently, but will throw an exception instead. +:doc:`Query Builder <../database/query_builder>` functionality and ``escape()`` can +no longer be used with the 'odbc' database driver. -You may choose to explicitly catch it (and for that purpose you can't use -*config/autoload.php* to load the :doc:`Database Class <../database/index>`) -:: +This is because, due to its nature, the `ODBC extension for PHP <https://secure.php.net/odbc>`_ +does not provide a function that allows to safely escape user-supplied strings for usage +inside an SQL query (which our :doc:`Query Builder <../database/query_builder>` relies on). - try - { - $this->load->database(); - } - catch (RuntimeException $e) - { - // Handle the failure - } - -Or you may leave it to CodeIgniter's default exception handler, which would -log the error message and display an error screen if you're running in -development mode. - -Remove db_set_charset() calls ------------------------------ - -With the above-mentioned changes, the purpose of the ``db_set_charset()`` -method would now only be to change the connection character set at runtime. -That doesn't make sense and that's the reason why most database drivers -don't support it at all. -Thus, ``db_set_charset()`` is no longer necessary and is removed. - -Step 3: Check logic related to URI parsing of CLI requests -========================================================== - -When running a CodeIgniter application from the CLI, the -:doc:`URI Library <../libraries/uri>` will now ignore the -``$config['url_suffix']`` and ``$config['permitted_uri_chars']`` -configuration settings. - -These two options don't make sense under the command line (which is why -this change was made) and therefore you shouldn't be affected by this, but -if you've relied on them for some reason, you'd probably have to make some -changes to your code. - -Step 4: Check Cache Library configurations for Redis, Memcache(d) -================================================================= - -The new improvements for the 'redis' and 'memcached' drivers of the -:doc:`Cache Library <../libraries/caching>` may require some small -adjustments to your configuration values ... - -Redis ------ - -If you're using the 'redis' driver with a UNIX socket connection, you'll -have to move the socket path from ``$config['socket']`` to -``$config['host']`` instead. - -The ``$config['socket_type']`` option is also removed, although that won't -affect your application - it will be ignored and the connection type will -be determined by the format used for ``$config['host']`` instead. - -Memcache(d) ------------ - -The 'memcached' will now ignore configurations that don't specify a ``host`` -value (previously, it just set the host to the default '127.0.0.1'). - -Therefore, if you've added a configuration that only sets e.g. a ``port``, -you will now have to explicitly set the ``host`` to '127.0.0.1' as well. - -Step 5: Check usage of doctype() HTML helper -============================================ - -The :doc:`HTML Helper <../helpers/html_helper>` function -:php:func:`doctype()` used to default to 'xhtml1-strict' (XHTML 1.0 Strict) -when no document type was specified. That default value is now changed to -'html5', which obviously stands for the modern HTML 5 standard. - -Nothing should be really broken by this change, but if your application -relies on the default value, you should double-check it and either -explicitly set the desired format, or adapt your front-end to use proper -HTML 5 formatting.
\ No newline at end of file +Thus, user inputs MUST be bound, as shown in :doc:`Running Queries <../database/queries>`, +under the "Query Bindings" section. |