diff options
author | Andrey Andreev <narf@devilix.net> | 2014-07-11 18:48:37 +0200 |
---|---|---|
committer | Andrey Andreev <narf@devilix.net> | 2014-07-11 18:48:37 +0200 |
commit | ed86ee14f3a36de1034b8fa19ff6d41aeb428a93 (patch) | |
tree | 33d436035a0d1863625aef1b5253611d13532e1a | |
parent | 9fa275e6aba369fab6557284a84e2c0dda77da35 (diff) |
Add setting ['composer_autoload']
Supersedes PR #3132
-rw-r--r-- | application/config/config.php | 22 | ||||
-rw-r--r-- | system/core/CodeIgniter.php | 17 | ||||
-rw-r--r-- | user_guide_src/source/changelog.rst | 1 | ||||
-rw-r--r-- | user_guide_src/source/general/autoloader.rst | 6 |
4 files changed, 44 insertions, 2 deletions
diff --git a/application/config/config.php b/application/config/config.php index d269b6e5d..b6b3c9fdf 100644 --- a/application/config/config.php +++ b/application/config/config.php @@ -121,7 +121,6 @@ $config['charset'] = 'UTF-8'; */ $config['enable_hooks'] = FALSE; - /* |-------------------------------------------------------------------------- | Class Extension Prefix @@ -136,6 +135,27 @@ $config['enable_hooks'] = FALSE; */ $config['subclass_prefix'] = 'MY_'; +/* +|-------------------------------------------------------------------------- +| Composer auto-loading +|-------------------------------------------------------------------------- +| +| Enabling this setting will tell CodeIgniter to look for a Composer +| package auto-loader script in application/vendor/autoload.php. +| +| $config['composer_autoload'] = TRUE; +| +| Or if you have your vendor/ directory located somewhere else, you +| can opt to set a specific path as well: +| +| $config['composer_autoload'] = '/path/to/vendor/autoload.php'; +| +| For more information about Composer, please visit http://getcomposer.org/ +| +| Note: This will NOT disable or override the CodeIgniter-specific +| autoloading (application/config/autoload.php) +*/ +$config['composer_autoload'] = FALSE; /* |-------------------------------------------------------------------------- diff --git a/system/core/CodeIgniter.php b/system/core/CodeIgniter.php index 3e1280bab..5ff788ae3 100644 --- a/system/core/CodeIgniter.php +++ b/system/core/CodeIgniter.php @@ -449,6 +449,23 @@ if ( ! is_php('5.4')) /* * ------------------------------------------------------ + * Should we use a Composer autoloader? + * ------------------------------------------------------ + */ + if (($composer_autoload = config_item('composer_autoload')) !== FALSE) + { + if ($composer_autoload === TRUE && file_exists(APPPATH.'vendor/autoload.php')) + { + require_once(APPPATH.'vendor/autoload.php'); + } + elseif (file_exists($composer_autoload)) + { + require_once($composer_autoload); + } + } + +/* + * ------------------------------------------------------ * Is there a "pre_controller" hook? * ------------------------------------------------------ */ diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index 987e466d5..bcdb12feb 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -61,6 +61,7 @@ Release Date: Not Released - Added availability checks where usage of dangerous functions like ``eval()`` and ``exec()`` is required. - Added support for changing the file extension of log files using ``$config['log_file_extension']``. - Added support for turning newline standardization on/off via ``$config['standardize_newlines']`` and set it to FALSE by default. + - Added configuration setting ``$config['composer_autoload']`` to enable loading of a `Composer <https://getcomposer.org/>`_ auto-loader. - Helpers diff --git a/user_guide_src/source/general/autoloader.rst b/user_guide_src/source/general/autoloader.rst index bf2e3935a..2f1223e28 100644 --- a/user_guide_src/source/general/autoloader.rst +++ b/user_guide_src/source/general/autoloader.rst @@ -20,4 +20,8 @@ file and add the item you want loaded to the autoload array. You'll find instructions in that file corresponding to each type of item. .. note:: Do not include the file extension (.php) when adding items to - the autoload array.
\ No newline at end of file + the autoload array. + +Additionally, if you want CodeIgniter to use a `Composer <https://getcomposer.org/>`_ +auto-loader, just set ``$config['composer_autoload']`` to ``TRUE`` or +a custom path in **application/config/config.php**.
\ No newline at end of file |