summaryrefslogtreecommitdiffstats
path: root/user_guide_src/source/general/core_classes.rst
diff options
context:
space:
mode:
Diffstat (limited to 'user_guide_src/source/general/core_classes.rst')
-rw-r--r--user_guide_src/source/general/core_classes.rst117
1 files changed, 0 insertions, 117 deletions
diff --git a/user_guide_src/source/general/core_classes.rst b/user_guide_src/source/general/core_classes.rst
deleted file mode 100644
index 9ccded75c..000000000
--- a/user_guide_src/source/general/core_classes.rst
+++ /dev/null
@@ -1,117 +0,0 @@
-############################
-Creating Core System Classes
-############################
-
-Every time CodeIgniter runs there are several base classes that are
-initialized automatically as part of the core framework. It is possible,
-however, to swap any of the core system classes with your own versions
-or even extend the core versions.
-
-**Most users will never have any need to do this, but the option to
-replace or extend them does exist for those who would like to
-significantly alter the CodeIgniter core.**
-
-.. note:: Messing with a core system class has a lot of implications, so
- make sure you know what you are doing before attempting it.
-
-System Class List
-=================
-
-The following is a list of the core system files that are invoked every
-time CodeIgniter runs:
-
-- Benchmark
-- Config
-- Controller
-- Exceptions
-- Hooks
-- Input
-- Language
-- Loader
-- Log
-- Output
-- Router
-- Security
-- URI
-- Utf8
-
-Replacing Core Classes
-======================
-
-To use one of your own system classes instead of a default one simply
-place your version inside your local *application/core/* directory::
-
- application/core/some_class.php
-
-If this directory does not exist you can create it.
-
-Any file named identically to one from the list above will be used
-instead of the one normally used.
-
-Please note that your class must use CI as a prefix. For example, if
-your file is named Input.php the class will be named::
-
- class CI_Input {
-
- }
-
-Extending Core Class
-====================
-
-If all you need to do is add some functionality to an existing library -
-perhaps add a method or two - then it's overkill to replace the entire
-library with your version. In this case it's better to simply extend the
-class. Extending a class is nearly identical to replacing a class with a
-couple exceptions:
-
-- The class declaration must extend the parent class.
-- Your new class name and filename must be prefixed with MY\_ (this
- item is configurable. See below.).
-
-For example, to extend the native Input class you'll create a file named
-application/core/MY_Input.php, and declare your class with::
-
- class MY_Input extends CI_Input {
-
- }
-
-.. note:: If you need to use a constructor in your class make sure you
- extend the parent constructor::
-
- class MY_Input extends CI_Input {
-
- public function __construct()
- {
- parent::__construct();
- // Your own constructor code
- }
- }
-
-**Tip:** Any functions in your class that are named identically to the
-methods in the parent class will be used instead of the native ones
-(this is known as "method overriding"). This allows you to substantially
-alter the CodeIgniter core.
-
-If you are extending the Controller core class, then be sure to extend
-your new class in your application controller's constructors.
-
-::
-
- class Welcome extends MY_Controller {
-
- public function index()
- {
- $this->load->view('welcome_message');
- }
- }
-
-Setting Your Own Prefix
------------------------
-
-To set your own sub-class prefix, open your
-*application/config/config.php* file and look for this item::
-
- $config['subclass_prefix'] = 'MY_';
-
-Please note that all native CodeIgniter libraries are prefixed
-with CI\_ so DO NOT use that as your prefix.