summaryrefslogtreecommitdiffstats
path: root/user_guide_src/source/general
diff options
context:
space:
mode:
Diffstat (limited to 'user_guide_src/source/general')
-rw-r--r--user_guide_src/source/general/compatibility_functions.rst157
-rw-r--r--user_guide_src/source/general/creating_libraries.rst3
-rw-r--r--user_guide_src/source/general/index.rst1
-rw-r--r--user_guide_src/source/general/reserved_names.rst3
4 files changed, 163 insertions, 1 deletions
diff --git a/user_guide_src/source/general/compatibility_functions.rst b/user_guide_src/source/general/compatibility_functions.rst
new file mode 100644
index 000000000..e025d2aa3
--- /dev/null
+++ b/user_guide_src/source/general/compatibility_functions.rst
@@ -0,0 +1,157 @@
+#######################
+Compatibility Functions
+#######################
+
+CodeIgniter provides a set of compatibility functions that enable
+you to use functions what are otherwise natively available in PHP,
+but only in higher versions or depending on a certain extension.
+
+Being custom implementations, these functions will also have some
+set of dependancies on their own, but are still useful if your
+PHP setup doesn't offer them natively.
+
+.. note:: Much like the `common functions <common_functions>`, the
+ compatibility functions are always available, as long as
+ their dependancies are met.
+
+.. contents::
+ :local:
+
+.. raw:: html
+
+ <div class="custom-index container"></div>
+
+****************
+Password Hashing
+****************
+
+This set of compatibility functions offers a "backport" of PHP's
+standard `Password Hashing extension <http://php.net/password>`_
+that is otherwise available only since PHP 5.5.
+
+Dependancies
+============
+
+- PHP 5.3.7
+- ``CRYPT_BLOWFISH`` support for ``crypt()``
+
+Constants
+=========
+
+- ``PASSWORD_BCRYPT``
+- ``PASSWORD_DEFAULT``
+
+Function reference
+==================
+
+.. function:: password_get_info($hash)
+
+ :param string $hash: Password hash
+ :returns: Information about the hashed password
+ :rtype: array
+
+ For more information, please refer to the `PHP manual for
+ password_get_info() <http://php.net/password_get_info>`_.
+
+.. function:: password_hash($password, $algo[, $options = array()])
+
+ :param string $password: Plain-text password
+ :param int $algo: Hashing algorithm
+ :param array $options: Hashing options
+ :returns: Hashed password or FALSE on failure
+ :rtype: string
+
+ For more information, please refer to the `PHP manual for
+ password_hash() <http://php.net/password_hash>`_.
+
+ .. note:: Unless you provide your own (and valid) salt, this function
+ has a further dependancy on an available CSPRNG source. Each
+ of the following would satisfy that:
+ - ``mcrypt_create_iv()`` with ``MCRYPT_DEV_URANDOM``
+ - ``openssl_random_pseudo_bytes()``
+ - /dev/arandom
+ - /dev/urandom
+
+.. function:: password_needs_rehash()
+
+ :param string $hash: Password hash
+ :param int $algo: Hashing algorithm
+ :param array $options: Hashing options
+ :returns: TRUE if the hash should be rehashed to match the given algorithm and options, FALSE otherwise
+ :rtype: bool
+
+ For more information, please refer to the `PHP manual for
+ password_needs_rehash() <http://php.net/password_needs_rehash>`_.
+
+.. function:: password_verify($password, $hash)
+
+ :param string $password: Plain-text password
+ :param string $hash: Password hash
+ :returns: TRUE if the password matches the hash, FALSE if not
+ :rtype: bool
+
+ For more information, please refer to the `PHP manual for
+ password_verify() <http://php.net/password_verify>`_.
+
+****************
+Multibyte String
+****************
+
+This set of compatibility functions offers limited support for PHP's
+`Multibyte String extension <http://php.net/mbstring>`_. Because of
+the limited alternative solutions, only a few functions are available.
+
+.. note:: When a character set parameter is ommited,
+ ``$config['charset']`` will be used.
+
+Dependancies
+============
+
+- `iconv <http://php.net/iconv>`_ extension
+
+.. important:: This dependancy is optional and these functions will
+ always be declared. If iconv is not available, they WILL
+ fall-back to their non-mbstring versions.
+
+.. important:: Where a character set is supplied, it must be
+ supported by iconv and in a format that it recognizes.
+
+.. note:: For you own dependancy check on the actual mbstring
+ extension, use the ``MB_ENABLED`` constant.
+
+Function reference
+==================
+
+.. function:: mb_strlen($str[, $encoding = NULL])
+
+ :param string $str: Input string
+ :param string $encoding: Character set
+ :returns: Number of characters in the input string or FALSE on failure
+ :rtype: string
+
+ For more information, please refer to the `PHP manual for
+ mb_strlen() <http://php.net/mb_strlen>`_.
+
+.. function:: mb_strpos($haystack, $needle[, $offset = 0[, $encoding = NULL]])
+
+ :param string $haystack: String to search in
+ :param string $needle: Part of string to search for
+ :param int $offset: Search offset
+ :param string $encoding: Character set
+ :returns: Numeric character position of where $needle was found or FALSE if not found
+ :rtype: mixed
+
+ For more information, please refer to the `PHP manual for
+ mb_strpos() <http://php.net/mb_strpos>`_.
+
+.. function:: mb_substr($str, $start[, $length = NULL[, $encoding = NULL]])
+
+ :param string $str: Input string
+ :param int $start: Position of first character
+ :param int $length: Maximum number of characters
+ :param string $encoding: Character set
+ :returns: Portion of $str specified by $start and $length or FALSE on failure
+ :rtype: string
+
+ For more information, please refer to the `PHP manual for
+ mb_substr() <http://php.net/mb_substr>`_. \ No newline at end of file
diff --git a/user_guide_src/source/general/creating_libraries.rst b/user_guide_src/source/general/creating_libraries.rst
index 4beb600da..a1e1b3e78 100644
--- a/user_guide_src/source/general/creating_libraries.rst
+++ b/user_guide_src/source/general/creating_libraries.rst
@@ -44,7 +44,8 @@ The Class File
Classes should have this basic prototype::
- <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
+ <?php
+ defined('BASEPATH') OR exit('No direct script access allowed');
class Someclass {
diff --git a/user_guide_src/source/general/index.rst b/user_guide_src/source/general/index.rst
index 2bc684a1d..195c4a98a 100644
--- a/user_guide_src/source/general/index.rst
+++ b/user_guide_src/source/general/index.rst
@@ -20,6 +20,7 @@ General Topics
hooks
autoloader
common_functions
+ compatibility_functions
routing
errors
Caching <caching>
diff --git a/user_guide_src/source/general/reserved_names.rst b/user_guide_src/source/general/reserved_names.rst
index a767651fb..81a05ace6 100644
--- a/user_guide_src/source/general/reserved_names.rst
+++ b/user_guide_src/source/general/reserved_names.rst
@@ -61,6 +61,9 @@ Constants
- APPPATH
- VIEWPATH
- CI_VERSION
+- MB_ENABLED
+- ICONV_ENABLED
+- UTF8_ENABLED
- FILE_READ_MODE
- FILE_WRITE_MODE
- DIR_READ_MODE