类 和 名字空间 的加载问题,求助!
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'
5 个回复
小楼
赞同来自:
小楼
赞同来自:
Call to undefined method Main::getAfterFilters()
这是什么导致的,就执行了 main 方法
wormcc
赞同来自:
小楼
赞同来自:
发现 laravel 的类加载,在composer 目录下 定义 的 加载方法那会找3次;一般的会在第一次或第三次找到;第三次找不到 会 跑到 bootstrap\compiled.php 定义的加载类里去找一下(貌似是 跟 引用类的静态方法 相关,没看懂)。
但是还是没弄明白 laravel 的 命名空间 和 加载类的 细节;在autoload_classmap 或 autoload_namespace 里 如何正确的定义 预加载类 和命名空间也没搞得太清楚,有明白的给讲一下
FiveSay - 成武
赞同来自: