无法加载自定义的命名空间类问题??? [ 2.0 版本 ]
使用了高级版, web站点目录为frontend里的web目录
common
  |__ config
    |-- bootstrap.php //这里定义了别名路径 util
backend
frontend
util // 这个是新添加的类库
  |____ image //目录
          |__ driver //目录
            |__ Gd.php //驱动文件
          |__ Image.php
common/config/bootstrap.php 如下:
Yii::setAlias('common', dirname(__DIR__));
Yii::setAlias('frontend', dirname(dirname(__DIR__)) . '/frontend');
Yii::setAlias('backend', dirname(dirname(__DIR__)) . '/backend');
Yii::setAlias('console', dirname(dirname(__DIR__)) . '/console');
Yii::setAlias('util',  dirname(dirname(__DIR__)) . '/util');  //新添加的一行
在frontend/controllers/siteController.php 里的 actionImg 方法里调用
$image = new uitl\image\Image();
总是失败。使用
echo Yii::getAlias('@util/image/Image.php');
查看,路径是没有问题的。
使用的是 Yii自动加载器 http://www.yiichina.com/doc/guide/2.0/concept-autoloading
已经解决,以下方法。以前可能测试的有误
$image = new \uitl\image\Image();
最佳答案
其他 3 个回答
- 
 - 

在高级应用模版里,每一逻辑层级会使用他自己的根别名。比如,前端层会使用 @frontend 而后端层会使用 @backend。因此,你可以把前端的类放在 frontend 命名空间,而后端的类放在 backend。 这样这些类就可以被 Yii 自动加载了。
你这种没有autoload的要放到应用下面,光定义别名是不行的,没有加载进去
共 1 条回复 - 

失败是指?找不到路径?还是说你的image()函数报错?
共 8 条回复
        Yii::setAlias('common', dirname(DIR)); Yii::setAlias('frontend', dirname(dirname(DIR)) . '/frontend'); Yii::setAlias('backend', dirname(dirname(DIR)) . '/backend'); Yii::setAlias('console', dirname(dirname(DIR)) . '/console'); Yii::setAlias('util', dirname(dirname(DIR)) . '/util'); //新添加的一行这个是别名配置在公共的 common/config/bootstrap.php文件里,和frontend、backend平级的,不对吗?
 
cfanbo
            注册时间:2015-05-23
最后登录:2015-09-10
在线时长:11小时52分
    最后登录:2015-09-10
在线时长:11小时52分
- 粉丝2
 - 金钱110
 - 威望0
 - 积分220