2016-04-27 22:13:43 3429次浏览 2条回答 0 悬赏 10 金钱

1.$app=new yii\web\Application($config);
2.

class Yii extends \yii\BaseYii
{
}

以上的

yii\web\Application
yii\BaseYii

是什么意思呢?

最佳答案

  • lirongtong 发布于 2016-04-28 11:33 举报

    命名空间:http://php.net/manual/zh/language.namespaces.rationale.php
    有何作用:避免命名重复;顾名思义,我定义多个区域(命名空间),彼此之间的区域互不干扰,但同区域下却不能有相同的命名;

    5 条回复
    回复于 2016-04-29 08:47 回复

    YII\ 应该是映射到 yiisoft\yii2 这里的吧
    请问,在YII里,程序是在哪里定义的呢?

    回复于 2016-04-29 09:02 回复

    BaseYii核心类,Yii继承了BaseYii,然后你看BaseYii注释(BaseYii is the core helper class for the Yii framework.Do not use BaseYii directly. Instead, use its child class [[\Yii]] which you can replace to customize methods of BaseYii.)
    你说的程序在哪儿定义是指什么?前后端那些自己二开的代码?前端:frontend/web ,后端:backend/web

    回复于 2016-04-29 10:10 回复

    谢谢您的热心回复,
    其实我就是不明白 为什么不是:
    class Yii extends \yiisoft\yii2\BaseYii
    {
    }
    而变成了
    class Yii extends \yii\BaseYii
    {
    }

    回复于 2016-04-29 11:51 回复

    因为BaseYii的命名空间是 yii 而不是 yiisoft\yii2, yii这个别名默认就是指向了 yiisoft/yii2 这个目录

    回复于 2016-04-29 15:53 回复

    谢谢这个朋友!

    觉得很赞
  • 回答于 2016-04-28 09:58 举报

    命名空间, 他类似于指向某个目录,该目录下不能有同名的文件(相同的命名空间下不能有同名的类)一开始是为了解决类名重复问题。
    后来用做类自动加载

    1 条回复
    回复于 2016-04-29 08:49 回复

    这个意思我是差不多明白了
    但是我不明白的是 yiisoft\yii2 和YII 之间,YII程序是在哪里转换的?

您需要登录后才可以回答。登录 | 立即注册
okokad
经理

okokad

注册时间:2016-02-29
最后登录:2017-07-01
在线时长:49小时26分
  • 粉丝12
  • 金钱25
  • 威望80
  • 积分1315

热门问题