4

i am upgrade apache From 2.2.19.0 To 2.4.16.0 And php From 5.3.7.0 To 5.6.12.0 now i get this error:

Fatal error: Class 'CI_Controller' not found in system\core\CodeIgniter.php on line 234

CodeIgniter.php line 221-235

// Load the base controller class
require BASEPATH.'core/Controller.php';

/**
 * Reference to the CI_Controller method.
 *
 * Returns current CI instance object
 *
 * @return object
 */

function &get_instance()
{
    return CI_Controller::get_instance();
}

Full CodeIgniter.php

<?php
/**
 * CodeIgniter
 *
 * An open source application development framework for PHP 5.2.4 or newer
 *
 * NOTICE OF LICENSE
 *
 * Licensed under the Open Software License version 3.0
 *
 * This source file is subject to the Open Software License (OSL 3.0) that is
 * bundled with this package in the files license.txt / license.rst.  It is
 * also available through the world wide web at this URL:
 * http://opensource.org/licenses/OSL-3.0
 * If you did not receive a copy of the license and are unable to obtain it
 * through the world wide web, please send an email to
 * [email protected] so we can send you a copy immediately.
 *
 * @package     CodeIgniter
 * @author      EllisLab Dev Team
 * @copyright   Copyright (c) 2008 - 2013, EllisLab, Inc. (http://ellislab.com/)
 * @license     http://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0)
 * @link        http://codeigniter.com
 * @since       Version 1.0
 * @filesource
 */
defined('BASEPATH') OR exit('No direct script access allowed');

/**
 * System Initialization File
 *
 * Loads the base classes and executes the request.
 *
 * @package     CodeIgniter
 * @subpackage  CodeIgniter
 * @category    Front-controller
 * @author      EllisLab Dev Team
 * @link        http://codeigniter.com/user_guide/
 */

/**
 * CodeIgniter Version
 *
 * @var string
 *
 */
    define('CI_VERSION', '3.0-dev');

/*
 * ------------------------------------------------------
 *  Load the global functions
 * ------------------------------------------------------
 */
    require_once(BASEPATH.'core/Common.php');

/*
 * ------------------------------------------------------
 *  Load the framework constants
 * ------------------------------------------------------
 */
    if (file_exists(APPPATH.'config/'.ENVIRONMENT.'/constants.php'))
    {
        require(APPPATH.'config/'.ENVIRONMENT.'/constants.php');
    }
    else
    {
        require(APPPATH.'config/constants.php');
    }

/*
 * ------------------------------------------------------
 *  Define a custom error handler so we can log PHP errors
 * ------------------------------------------------------
 */
    set_error_handler('_exception_handler');

    if ( ! is_php('5.4'))
    {
        @ini_set('magic_quotes_runtime', 0); // Kill magic quotes
    }

/*
 * ------------------------------------------------------
 *  Set the subclass_prefix
 * ------------------------------------------------------
 *
 * Normally the "subclass_prefix" is set in the config file.
 * The subclass prefix allows CI to know if a core class is
 * being extended via a library in the local application
 * "libraries" folder. Since CI allows config items to be
 * overriden via data set in the main index. php file,
 * before proceeding we need to know if a subclass_prefix
 * override exists. If so, we will set this value now,
 * before any classes are loaded
 * Note: Since the config file data is cached it doesn't
 * hurt to load it here.
 */
    if ( ! empty($assign_to_config['subclass_prefix']))
    {
        get_config(array('subclass_prefix' => $assign_to_config['subclass_prefix']));
    }

/*
 * ------------------------------------------------------
 *  Start the timer... tick tock tick tock...
 * ------------------------------------------------------
 */
    $BM =& load_class('Benchmark', 'core');
    $BM->mark('total_execution_time_start');
    $BM->mark('loading_time:_base_classes_start');

/*
 * ------------------------------------------------------
 *  Instantiate the hooks class
 * ------------------------------------------------------
 */
    $EXT =& load_class('Hooks', 'core');

/*
 * ------------------------------------------------------
 *  Is there a "pre_system" hook?
 * ------------------------------------------------------
 */
    $EXT->_call_hook('pre_system');

/*
 * ------------------------------------------------------
 *  Instantiate the config class
 * ------------------------------------------------------
 */
    $CFG =& load_class('Config', 'core');

    // Do we have any manually set config items in the index.php file?
    if (isset($assign_to_config) && is_array($assign_to_config))
    {
        foreach ($assign_to_config as $key => $value)
        {
            $CFG->set_item($key, $value);
        }
    }

/*
 * ------------------------------------------------------
 *  Instantiate the UTF-8 class
 * ------------------------------------------------------
 *
 * Note: Order here is rather important as the UTF-8
 * class needs to be used very early on, but it cannot
 * properly determine if UTF-8 can be supported until
 * after the Config class is instantiated.
 *
 */
    $UNI =& load_class('Utf8', 'core');

/*
 * ------------------------------------------------------
 *  Instantiate the URI class
 * ------------------------------------------------------
 */
    $URI =& load_class('URI', 'core');

/*
 * ------------------------------------------------------
 *  Instantiate the routing class and set the routing
 * ------------------------------------------------------
 */
    $RTR =& load_class('Router', 'core');
    $RTR->_set_routing();

    // Set any routing overrides that may exist in the main index file
    if (isset($routing))
    {
        $RTR->_set_overrides($routing);
    }

/*
 * ------------------------------------------------------
 *  Instantiate the output class
 * ------------------------------------------------------
 */
    $OUT =& load_class('Output', 'core');

/*
 * ------------------------------------------------------
 *  Is there a valid cache file? If so, we're done...
 * ------------------------------------------------------
 */
    if ($EXT->_call_hook('cache_override') === FALSE
        && $OUT->_display_cache($CFG, $URI) === TRUE)
    {
        exit;
    }

/*
 * -----------------------------------------------------
 * Load the security class for xss and csrf support
 * -----------------------------------------------------
 */
    $SEC =& load_class('Security', 'core');

/*
 * ------------------------------------------------------
 *  Load the Input class and sanitize globals
 * ------------------------------------------------------
 */
    $IN =& load_class('Input', 'core');

/*
 * ------------------------------------------------------
 *  Load the Language class
 * ------------------------------------------------------
 */
    $LANG =& load_class('Lang', 'core');

/*
 * ------------------------------------------------------
 *  Load the app controller and local controller
 * ------------------------------------------------------
 *
 */
    // Load the base controller class
    require BASEPATH.'core/Controller.php';

    /**
     * Reference to the CI_Controller method.
     *
     * Returns current CI instance object
     *
     * @return object
     */

    function &get_instance()
    {
        return CI_Controller::get_instance();
    }

    if (file_exists(APPPATH.'core/'.$CFG->config['subclass_prefix'].'Controller.php'))
    {
        require APPPATH.'core/'.$CFG->config['subclass_prefix'].'Controller.php';
    }

    // Load the local application controller
    // Note: The Router class automatically validates the controller path using the router->_validate_request().
    // If this include fails it means that the default controller in the Routes.php file is not resolving to something valid.
    if ( ! file_exists(APPPATH.'controllers/'.$RTR->directory.$RTR->class.'.php'))
    {
        show_error('Unable to load your default controller. Please make sure the controller specified in your Routes.php file is valid.');
    }

    include(APPPATH.'controllers/'.$RTR->directory.$RTR->class.'.php');

    // Set a mark point for benchmarking
    $BM->mark('loading_time:_base_classes_end');

/*
 * ------------------------------------------------------
 *  Security check
 * ------------------------------------------------------
 *
 *  None of the methods in the app controller or the
 *  loader class can be called via the URI, nor can
 *  controller functions that begin with an underscore.
 */
    $class  = $RTR->class;
    $method = $RTR->method;

    if ( ! class_exists($class, FALSE) OR $method[0] === '_' OR method_exists('CI_Controller', $method))
    {
        if ( ! empty($RTR->routes['404_override']))
        {
            if (sscanf($RTR->routes['404_override'], '%[^/]/%s', $class, $method) !== 2)
            {
                $method = 'index';
            }

            if ( ! class_exists($class, FALSE))
            {
                if ( ! file_exists(APPPATH.'controllers/'.$class.'.php'))
                {
                    show_404($class.'/'.$method);
                }

                include_once(APPPATH.'controllers/'.$class.'.php');
            }
        }
        else
        {
            show_404($class.'/'.$method);
        }
    }

    if (method_exists($class, '_remap'))
    {
        $params = array($method, array_slice($URI->rsegments, 2));
        $method = '_remap';
    }
    else
    {
        // WARNING: It appears that there are issues with is_callable() even in PHP 5.2!
        // Furthermore, there are bug reports and feature/change requests related to it
        // that make it unreliable to use in this context. Please, DO NOT change this
        // work-around until a better alternative is available.
        if ( ! in_array(strtolower($method), array_map('strtolower', get_class_methods($class)), TRUE))
        {
            if (empty($RTR->routes['404_override']))
            {
                show_404($class.'/'.$method);
            }
            elseif (sscanf($RTR->routes['404_override'], '%[^/]/%s', $class, $method) !== 2)
            {
                $method = 'index';
            }

            if ( ! class_exists($class, FALSE))
            {
                if ( ! file_exists(APPPATH.'controllers/'.$class.'.php'))
                {
                    show_404($class.'/'.$method);
                }

                include_once(APPPATH.'controllers/'.$class.'.php');
            }
        }

        $params = array_slice($URI->rsegments, 2);
    }

/*
 * ------------------------------------------------------
 *  Is there a "pre_controller" hook?
 * ------------------------------------------------------
 */
    $EXT->_call_hook('pre_controller');

/*
 * ------------------------------------------------------
 *  Instantiate the requested controller
 * ------------------------------------------------------
 */
    // Mark a start point so we can benchmark the controller
    $BM->mark('controller_execution_time_( '.$class.' / '.$method.' )_start');

    $CI = new $class();

/*
 * ------------------------------------------------------
 *  Is there a "post_controller_constructor" hook?
 * ------------------------------------------------------
 */
    $EXT->_call_hook('post_controller_constructor');

/*
 * ------------------------------------------------------
 *  Call the requested method
 * ------------------------------------------------------
 */
    call_user_func_array(array(&$CI, $method), $params);

    // Mark a benchmark end point
    $BM->mark('controller_execution_time_( '.$class.' / '.$method.' )_end');

/*
 * ------------------------------------------------------
 *  Is there a "post_controller" hook?
 * ------------------------------------------------------
 */
    $EXT->_call_hook('post_controller');

/*
 * ------------------------------------------------------
 *  Send the final rendered output to the browser
 * ------------------------------------------------------
 */
    if ($EXT->_call_hook('display_override') === FALSE)
    {
        $OUT->_display();
    }

/*
 * ------------------------------------------------------
 *  Is there a "post_system" hook?
 * ------------------------------------------------------
 */
    $EXT->_call_hook('post_system');

/* End of file CodeIgniter.php */
/* Location: ./system/core/CodeIgniter.php */

Full Controller.php

<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/**
 * CodeIgniter
 *
 * An open source application development framework for PHP 5.1.6 or newer
 *
 * @package     CodeIgniter
 * @author      ExpressionEngine Dev Team
 * @copyright   Copyright (c) 2008 - 2011, EllisLab, Inc.
 * @license     http://codeigniter.com/user_guide/license.html
 * @link        http://codeigniter.com
 * @since       Version 1.0
 * @filesource
 */

// ------------------------------------------------------------------------

/**
 * CodeIgniter Application Controller Class
 *
 * This class object is the super class that every library in
 * CodeIgniter will be assigned to.
 *
 * @package     CodeIgniter
 * @subpackage  Libraries
 * @category    Libraries
 * @author      ExpressionEngine Dev Team
 * @link        http://codeigniter.com/user_guide/general/controllers.html
 */
class CI_Controller {

    private static $instance;

    /**
     * Constructor
     */
    public function __construct()
    {
        self::$instance =& $this;

        // Assign all the class objects that were instantiated by the
        // bootstrap file (CodeIgniter.php) to local class variables
        // so that CI can run as one big super object.
        foreach (is_loaded() as $var => $class)
        {
            $this->$var =& load_class($class);
        }

        $this->load =& load_class('Loader', 'core');

        $this->load->initialize();

        log_message('debug', "Controller Class Initialized");
    }

    public static function &get_instance()
    {
        return self::$instance;
    }
}
// END Controller class

/* End of file Controller.php */
/* Location: ./system/core/Controller.php */

its possible becuase htaccess?

Hint: i am searching in site, google and ... but i don't get any solution, i waste my time 2 day. :-(

2
  • This is an old, development version of the system/core/CodeIgniter.php file ... When you use a dev version of anything, you do so at your own risk. You should update to the final 3.0 version. Commented Aug 11, 2015 at 15:21
  • oh thank you very much, i am do that soon. ;-) Commented Aug 11, 2015 at 18:42

1 Answer 1

9

Finally Its SOLVED!

just need change:

on CodeIgniter.php line 75

set_error_handler('_exception_handler');

to

set_exception_handler('_exception_handler');
Sign up to request clarification or add additional context in comments.

3 Comments

This helped. Making CI no longer the error handler gave me a better stacktrace.
Finally i got a working example because of this solution. Searched for hours and finally came across this answer. Thanks!
Took me days to find this answer!

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.