谁一开始就是大神?

无法加载自义的命名空间类问题???[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();

/frontend/config/bootstrap.php下面用
照着我的弄
$image = new uitl\image\Image();
代码拿出来看看
在高级应用模版里,每一逻辑层级会使用他自己的根别名。比如,前端层会使用 @frontend 而后端层会使用 @backend。因此,你可以把前端的类放在 frontend 命名空间,而后端的类放在 backend。 这样这些类就可以被 Yii 自动加载了。
你这种没有autoload的要放到应用下面,光定义别名是不行的,没有加载进去
失败是指?找不到路径?还是说你的image()函数报错?

赞(0) 打赏
未经允许不得转载:菜鸟之家 » 无法加载自义的命名空间类问题???[2.0]

评论 抢沙发

登录

找回密码

注册