Yii2.0学习第4课:命名空间-01

2025-11-08 07:27:55

1、运行我们的LNMP环境,使用浏览器查看我们默认首页地址。并查看首页“控制器”代码,如下:

namespace app\controllers;

Yii2.0学习第4课:命名空间-01

Yii2.0学习第4课:命名空间-01

2、一句话概括“命名空间”:一种封装事物的方法。有的朋友可能不理解“封装”和“事物”了。用一种抽象的词汇来解释一个“抽象”的词汇,好难,( ̄▽ ̄)"。

初次感觉“app\controllers”貌似是个目录结构,我们再次查看一下项目文档结构:

(1)basic\assets\AppAsset.php

(2)basic\controllers\SiteController.php

(3)basic\models\User.php

(4)basic\commands\HelloController.php

Yii2.0学习第4课:命名空间-01

Yii2.0学习第4课:命名空间-01

Yii2.0学习第4课:命名空间-01

Yii2.0学习第4课:命名空间-01

Yii2.0学习第4课:命名空间-01

Yii2.0学习第4课:命名空间-01

Yii2.0学习第4课:命名空间-01

Yii2.0学习第4课:命名空间-01

3、对比步骤2中的目录结构及该目录下文件中“命名空间”的使用,我们会发现以下问题:

(1)basic\assets =》app\assets

(2)basic\models =》app\models

(3)basic\controllers =》 app\controllers

(4)basic\commands =》app\commands

不知道读者有什么感想?

4、已basic\controllers\SiteController.php为例:

命名空间内容为“namespaces app\controllers”表示SiteController.php这个文件在controllers目录下。其他同理。

Yii2.0学习第4课:命名空间-01

Yii2.0学习第4课:命名空间-01

Yii2.0学习第4课:命名空间-01

Yii2.0学习第4课:命名空间-01

5、我们会发现,实际上SiteController.php本来就在controllers目录下,这样写不是多此一举吗?查看PHP官网,解释说其可以解决两种问题:

(1)用户编写的代码与PHP内部的类/函数/常量或第三方类/函数/常量之间的名字冲突。

(2)为很长的标识符名称(通常是为了缓解第一类问题而定义的)创建一个别名(或简短)的名称,提高源代码的可读性。    

Yii2.0学习第4课:命名空间-01

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢