类 和 名字空间 的加载问题,求助!

use common,
Zphp\Zphp,
Zphp\Core\Config as ZConfig;

class Main extends Base {
// public function __construct() {
    //Zphp::http_run();
//}
public function main()
{
    $token = $this->getString($this->params, 'token', '');
    $uid = $this->getString($this->params, 'uid', '');
    if(common\Utils::checkToken($uid, $token)) {
        return array(
            '_view_mode'=>'Php',
            '_tpl_file'=>'index.php',
            'uid'=>$uid,
            'token'=>$token,
            'static_url'=>ZConfig::getField('project', 'static_url'),
            'app_host'=>ZConfig::getField('project', 'app_host'),
        );
    }

    return array(
        '_view_mode'=>'Php',
        '_tpl_file'=>'login.php',
        'static_url'=>ZConfig::getField('project', 'static_url'),
    );
}

在名字空间的注册
'Boris' => array($vendorDir . '/d11wtq/boris/lib'),
'common' => array($baseDir . '/app/common'),

在类加载文件里
'User' => $baseDir . '/app/models/User.php',
'Utils' => $baseDir . '/app/common/Utils.php',

为什么在 前面 那还是提示 找不到 ‘class common\Utils.php'
已邀请:

小楼

赞同来自:

这个问题自己解决了!

小楼

赞同来自:

但是后面报这个错了:
Call to undefined method Main::getAfterFilters()
这是什么导致的,就执行了 main 方法

wormcc

赞同来自:

贴出完整代码

小楼

赞同来自:

找到了;类加载那个生效了!

发现 laravel 的类加载,在composer 目录下 定义 的 加载方法那会找3次;一般的会在第一次或第三次找到;第三次找不到 会 跑到 bootstrap\compiled.php 定义的加载类里去找一下(貌似是 跟 引用类的静态方法 相关,没看懂)。

但是还是没弄明白 laravel 的 命名空间 和 加载类的 细节;在autoload_classmap 或 autoload_namespace 里 如何正确的定义 预加载类 和命名空间也没搞得太清楚,有明白的给讲一下

要回复问题请先登录注册