Provide better error reporting and error checking when updating a network
[www-register-wizard.git] / libraries / Model.php
1 <?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');\r
2 /**\r
3  * CodeIgniter\r
4  *\r
5  * An open source application development framework for PHP 4.3.2 or newer\r
6  *\r
7  * @package             CodeIgniter\r
8  * @author              ExpressionEngine Dev Team\r
9  * @copyright   Copyright (c) 2008, EllisLab, Inc.\r
10  * @license             http://codeigniter.com/user_guide/license.html\r
11  * @link                http://codeigniter.com\r
12  * @since               Version 1.0\r
13  * @filesource\r
14  */\r
15 \r
16 // ------------------------------------------------------------------------\r
17 \r
18 /**\r
19  * CodeIgniter Model Class\r
20  *\r
21  * @package             CodeIgniter\r
22  * @subpackage  Libraries\r
23  * @category    Libraries\r
24  * @author              ExpressionEngine Dev Team\r
25  * @link                http://codeigniter.com/user_guide/libraries/config.html\r
26  */\r
27 class Model {\r
28 \r
29         var $_parent_name = '';\r
30 \r
31         /**\r
32          * Constructor\r
33          *\r
34          * @access public\r
35          */\r
36         function Model()\r
37         {\r
38                 // If the magic __get() or __set() methods are used in a Model references can't be used.\r
39                 $this->_assign_libraries( (method_exists($this, '__get') OR method_exists($this, '__set')) ? FALSE : TRUE );\r
40                 \r
41                 // We don't want to assign the model object to itself when using the\r
42                 // assign_libraries function below so we'll grab the name of the model parent\r
43                 $this->_parent_name = ucfirst(get_class($this));\r
44                 \r
45                 log_message('debug', "Model Class Initialized");\r
46         }\r
47 \r
48         /**\r
49          * Assign Libraries\r
50          *\r
51          * Creates local references to all currently instantiated objects\r
52          * so that any syntax that can be legally used in a controller\r
53          * can be used within models.  \r
54          *\r
55          * @access private\r
56          */     \r
57         function _assign_libraries($use_reference = TRUE)\r
58         {\r
59                 $CI =& get_instance();                          \r
60                 foreach (array_keys(get_object_vars($CI)) as $key)\r
61                 {\r
62                         if ( ! isset($this->$key) AND $key != $this->_parent_name)\r
63                         {                       \r
64                                 // In some cases using references can cause\r
65                                 // problems so we'll conditionally use them\r
66                                 if ($use_reference == TRUE)\r
67                                 {\r
68                                         $this->$key = NULL; // Needed to prevent reference errors with some configurations\r
69                                         $this->$key =& $CI->$key;\r
70                                 }\r
71                                 else\r
72                                 {\r
73                                         $this->$key = $CI->$key;\r
74                                 }\r
75                         }\r
76                 }               \r
77         }\r
78 \r
79 }\r
80 // END Model Class\r
81 \r
82 /* End of file Model.php */\r
83 /* Location: ./system/libraries/Model.php */