我在Codeigniter 3.0中遇到了codeof __autoload函数问题

时间:2015-09-03 18:49:07

标签: php codeigniter autoload

我在Codeigniter 3.0中遇到了config / config.php中带有codeof __autoload函数的问题它一直给出以下错误

  

未找到类'Frontend_Controller'

芯/ MY_Controller.php

defined('BASEPATH') OR exit('No direct script access allowed');
class MY_Controller extends CI_Controller {
    function __construct() {
        parent::__construct();
    }
}

库/ Frontend_Controller.php

defined('BASEPATH') OR exit('No direct script access allowed');
class Frontend_Controller extends MY_Controller {
    function __construct() {
        parent::__construct();
    }
}

库/ Admin_Controller.php

defined('BASEPATH') OR exit('No direct script access allowed');
class Admin_Controller extends MY_Controller {
    function __construct(){
        parent::__construct();
    }
}

控制器/的welcome.php

defined('BASEPATH') OR exit('No direct script access allowed');
class Welcome extends Frontend_Controller {
    public function __construct(){
        parent::__construct();
    }
}

配置/ config.php中

function __autoload($class) {
    $path = array('libraries');

    if(strpos($class, 'CI_') !== 0) {
        foreach($path as $dir) {
        $file = APPPATH.$dir.'/'.($class).'.php';
        if (file_exists($file) && is_file($file))
            @include_once($file);
        }
    }
}

2 个答案:

答案 0 :(得分:0)

这是由于我的config.php文件设置$ config ['composer_autoload']为TRUE,(Composer)阻止MY_控制器加载__autoload函数。 我用了spl_autoload_register。 e.g:

wstring texte; texte = L"pouet"; wcout << texte << endl;

答案 1 :(得分:0)

此代码对我来说适用于spl_autoload_register()

function autoload($classname)
       {
        $path = array('libraries');
        if(strpos($classname, 'CI_') !== 0)
       {
            foreach($path as $dir)
              {
                $file = APPPATH.$dir.'/'.($classname).'.php';
                if (file_exists($file) && is_file($file))
                @include_once($file);
              }
        }
    }
 spl_autoload_register('autoload');