Yii2.0加载自己的class [ 未指定版本 ]
app 项目目录
把自己写的类 放在 app/vendor/class/ 下面,在控制器中实例化到时候提示 class不存在。
配置文件中是这样写的
<?php
$params = require(__DIR__ . '/params.php');
$config = [
'id' => 'app',
'basePath' => dirname(__DIR__),
'bootstrap' => ['log'],
'aliases' => [
'@class' => '@vendor/class',
],
......
?>
改如何解决, 求高手给个能用的实例。。
最佳答案
-
首先,要明白 vendor 目录的含义,这个目录基本是放第三方类库的,yii 框架放在这里,你使用的 github 上的类库通过 composer 安装的也放在这里,但,你的产品代码,是不需要放在这里的,也不应该放在这里
第二,虽然,我们的代码用了
namespace app\XXX\XXX
定义 namespace,但是,这个app
目录对应的就是'basePath' => dirname(__DIR__),
目录,namespace app\vendor\class
对应的是basePath/vendor/class
目录,当然,不应该放在 vendor 目录下
举个例子
namespace app\models
是目录basePath/models
<?php namespace app\models; class User {};
这个 User 的 类名,是
\app\models\User
, 文件是basePath/models/User.php
最后,以上的前提是,你对 php 的 namespace 有大概的了解
共 1 条回复1123544409 回复于 2014-12-12 18:21 回复如果在加载自己的类的时候 之前写的类里面如果有很多的require关系 怎么添加呢
其他 0 个回答
没有找到数据。
吴笛
注册时间:2013-12-24
最后登录:2016-08-03
在线时长:39小时27分
最后登录:2016-08-03
在线时长:39小时27分
- 粉丝5
- 金钱0
- 威望20
- 积分590