blob: 88b49a9e6607492a4cc1753873a24f95380827bb [file] [log] [blame]
adminb0dd10f2006-08-25 17:25:49 +00001<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
2/**
3 * Code Igniter
4 *
5 * An open source application development framework for PHP 4.3.2 or newer
6 *
7 * @package CodeIgniter
8 * @author Rick Ellis
9 * @copyright Copyright (c) 2006, pMachine, Inc.
10 * @license http://www.codeignitor.com/user_guide/license.html
11 * @link http://www.codeigniter.com
12 * @since Version 1.0
13 * @filesource
14 */
15
16// ------------------------------------------------------------------------
17
18/**
19 * Code Igniter Application Controller Class
20 *
21 * This class object is the the super class the every library in
22 * Code Igniter will be assigned to.
23 *
24 * @package CodeIgniter
25 * @subpackage Libraries
26 * @category Libraries
27 * @author Rick Ellis
28 * @link http://www.codeigniter.com/user_guide/general/controllers.html
29 */
30class Controller extends CI_Base {
31
adminb0dd10f2006-08-25 17:25:49 +000032 var $_ci_scaffolding = FALSE;
33 var $_ci_scaff_table = FALSE;
34
35 /**
36 * Constructor
37 *
admin8f0a8f62006-10-07 01:17:25 +000038 * Calls the initialize() function
adminb0dd10f2006-08-25 17:25:49 +000039 */
40 function Controller()
41 {
42 parent::CI_Base();
43
admin8f0a8f62006-10-07 01:17:25 +000044 $this->_ci_initialize();
admine79dc712006-09-26 03:52:45 +000045
adminb0dd10f2006-08-25 17:25:49 +000046 log_message('debug', "Controller Class Initialized");
47 }
admin8f0a8f62006-10-07 01:17:25 +000048
adminb0dd10f2006-08-25 17:25:49 +000049 // --------------------------------------------------------------------
50
51 /**
admin8f0a8f62006-10-07 01:17:25 +000052 * Initialize
adminb0dd10f2006-08-25 17:25:49 +000053 *
admin8f0a8f62006-10-07 01:17:25 +000054 * Assigns all the bases classes loaded by the front controller to
55 * variables in this class. Also calls the autoload routine.
adminb0dd10f2006-08-25 17:25:49 +000056 *
57 * @access private
58 * @return void
admin8f0a8f62006-10-07 01:17:25 +000059 */
60 function _ci_initialize()
adminb0dd10f2006-08-25 17:25:49 +000061 {
admin8f0a8f62006-10-07 01:17:25 +000062 // Assign all the class objects that were instantiated by the
63 // front controller to local class variables so that CI can be
64 // run as one big super object.
adminb0dd10f2006-08-25 17:25:49 +000065 foreach (array('Config', 'Input', 'Benchmark', 'URI', 'Output') as $val)
66 {
67 $class = strtolower($val);
admin33de9a12006-09-28 06:50:16 +000068 $this->$class =& _load_class($val);
adminb0dd10f2006-08-25 17:25:49 +000069 }
70
admin33de9a12006-09-28 06:50:16 +000071 $this->lang =& _load_class('Language');
adminb0dd10f2006-08-25 17:25:49 +000072
73 // In PHP 4 the Controller class is a child of CI_Loader.
74 // In PHP 5 we run it as its own class.
75 if (floor(phpversion()) >= 5)
76 {
77 $this->load = new CI_Loader();
78 }
adminb0dd10f2006-08-25 17:25:49 +000079
adminb0dd10f2006-08-25 17:25:49 +000080
admin8f0a8f62006-10-07 01:17:25 +000081 // Load everything specified in the autoload.php file
82 $this->load->_ci_autoloader();
adminb0dd10f2006-08-25 17:25:49 +000083
admin8f0a8f62006-10-07 01:17:25 +000084 // This allows anything loaded using $this->load (viwes, files, etc.)
85 // to become accessible from within the Controller class functions.
86 foreach (get_object_vars($this) as $key => $var)
adminb0dd10f2006-08-25 17:25:49 +000087 {
admin8f0a8f62006-10-07 01:17:25 +000088 if (is_object($var))
89 {
90 $this->load->$key =& $this->$key;
91 }
92 }
adminb0dd10f2006-08-25 17:25:49 +000093 }
admin8f0a8f62006-10-07 01:17:25 +000094
adminb0dd10f2006-08-25 17:25:49 +000095
96}
97// END _Controller class
98?>