首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >spl_autoload在phpfog上的奇怪行为

spl_autoload在phpfog上的奇怪行为
EN

Stack Overflow用户
提问于 2011-06-24 03:40:22
回答 1查看 310关注 0票数 0

我只是试图在PHP Fog上构建我的第一个应用程序,但有一段代码不能正常运行-尽管在本地主机和其他常规主机上运行良好。

我使用TinyMVC的一个修改版本,这是负责设置自动加载的代码:

代码语言:javascript
复制
    /* Set include_path for spl_autoload */
    set_include_path(get_include_path()
      . PATH_SEPARATOR . FRAMEWORK_BASEDIR . 'core' . DS
      . PATH_SEPARATOR . FRAMEWORK_BASEDIR . 'libraries' . DS
      . PATH_SEPARATOR . FRAMEWORK_APPLICATION . DS . 'controllers' . DS
      . PATH_SEPARATOR . FRAMEWORK_APPLICATION . DS . 'models' . DS
      );

    /* File extensions to include */ 
    spl_autoload_extensions('.php,.inc');

    /* Setup __autoload */
    $spl_funcs = spl_autoload_functions();
    if($spl_funcs === false)
        spl_autoload_register();
    elseif(!in_array('spl_autoload',$spl_funcs))
        spl_autoload_register('spl_autoload');

基本上,它会在加载的第一个类失败,这个类位于"FRAMEWORK_BASEDIR . 'core‘.ds“中。类文件名为"framework_controller.php“,类名为"Framework_Controller”(也尝试小写)。如果我手动包含类,它可以工作,但自动加载失败。

下面是我得到的错误消息:

代码语言:javascript
复制
Fatal error: spl_autoload(): Class Framework_Controller could not be loaded in /var/fog/apps/app7396/claudiu.phpfogapp.com/application/controllers/home.php on line 12 

对于问题可能是什么,有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-06-24 03:57:57

我设法解决了这个问题:

代码语言:javascript
复制
function framework_autoload($className, $extList='.inc,.php') {

    $autoload_paths = array (
            FRAMEWORK_BASEDIR . 'core' . DS,
            FRAMEWORK_BASEDIR . 'libraries' . DS,
            FRAMEWORK_APPLICATION . DS . 'controllers' . DS,
            FRAMEWORK_APPLICATION . DS . 'models' . DS
        );

      $ext = explode(',',$extList);
      foreach($ext as $x) {
        foreach ($autoload_paths as $v) {
            $fname = $v . strtolower($className).$x;
            if(@file_exists($fname)) {
                require_once($fname);
                return true;
            }
        }
      }
      return false;
}
spl_autoload_register('framework_autoload');

感谢StackOverflow上的另一个问题:spl_autoload problem

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6459690

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档