From 79c643da4efcf154254730d78c6532cff3d99d1e Mon Sep 17 00:00:00 2001 From: admin Date: Thu, 28 Sep 2006 07:26:21 +0000 Subject: --- user_guide/general/core_classes.html | 40 +++++++++++++++++++++++++++++++++--- 1 file changed, 37 insertions(+), 3 deletions(-) (limited to 'user_guide/general/core_classes.html') diff --git a/user_guide/general/core_classes.html b/user_guide/general/core_classes.html index 66d258dd2..a2da4a81c 100644 --- a/user_guide/general/core_classes.html +++ b/user_guide/general/core_classes.html @@ -63,11 +63,13 @@ Creating Core System Classes

Creating Core System Classes

Every time Code Igniter 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.  Most users will never have any need to do this, -but the option to replace them does exist for those who would like to significantly alter the Code Igniter core. +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 Code Igniter core.

-

Note:  Replacing a core system class with your own version has a lot of implications, so make sure you +

Note:  Messing with a core system class has a lot of implications, so make sure you know what you are doing before attempting it.

@@ -108,6 +110,38 @@ class CI_Input {

+

Extending Core Class

+ +

If all you need to do is add some functionality to an existing library - perhaps add a function 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 identical to replacing a class with one exception: The class declaration must extend the parent class +and your new class must be prefixed with MY_. For example, to extend the native Input class +you'll create a file named application/libraries/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 {
+
+    function My_Input()
+    {
+        parent::CI_Input();
+    }
+}
+ +

Any functions in your class that are named identically to the functions in the parent class will be used instead of the native ones. +This allows you to substantially alter the Code Igniter core.

+ + + + + -- cgit v1.2.3-24-g4f1b