composer PHP自动加载器问题



我有一个非常旧的应用程序脚本,实际加载控制器,模型和实体与类名使用下面的代码片段

function __autoload($className)
{   
    list($filename , $suffix) = explode('_' , $className);  
    switch (strtolower($suffix))
    {   
        case 'model':
            $folder = '/model/';            
            $suffix = BIZ_SUFFIX;
        break;  
        case 'dao':
            $folder = '/entity/';   
            $suffix = DAO_SUFFIX;           
        break;      
    }   
    $file = SITE_PATH . $folder . strtolower($filename) . $suffix .'.php';      
    if (file_exists($file))
    {       
        include_once($file);        
    }
    else
    {       
        die("File '$filename' containing class '$className' not found in '$folder'.");  
    }
}

现在我在集成任何第三方自动加载器时都有问题,即使是与composer自动加载。

我甚至试过下面的方法

spl_autoload_register(function ($class) {
    include 'classes/' . $class . '.class.php';
});

function my_autoloader($class) {
    include 'classes/' . $class . '.class.php';
}
spl_autoload_register('my_autoloader');

错误味精:

Fatal error: Class 'Template_Model' not found

如果使用spl_autoload_register,则不会调用__autoload函数。

__autoload重命名为其他名称,例如old_autoload。然后注册到自动加载器spl_autoload_register('old_autoload');

相关内容

  • 没有找到相关文章

最新更新