美文网首页PHPPHP经验分享
PSR-4命名空间前缀与基目录

PSR-4命名空间前缀与基目录

作者: 组个团过红绿灯 | 来源:发表于2017-10-03 21:44 被阅读51次

    完全限定类名

    完全相对类名是以\开头的,比如\silai\controller\HomeController,不以\开头的类名是相对类名,比如controller\ArticleController,那么相对指的是相对谁呢,相对用namespace关键字声明的命名空间。

    <?php
    namespace silai;
    
    // 实际上是指`\silai\controller\ArticleController`
    controller\ArticleController;
    
    // 这个是完全限定类
    \foo\bar\User;
    

    命名空间前缀

    命名空间前缀是我们自己指定一的部分命名空间,比如这个命名空间,\silai\framework\controller,我们可以指定\silai这一部分作为一个前缀,也可以指定\silai\framework这一部分作为前缀,甚至指定\silai\framework\controller作为前缀。

    基目录

    指定了命名空间前缀后,应该再指定这个前缀的基目录,可以指定一个或多个基目录。比如上面的前缀\silai,指定它对应目录C:\silai;前缀\silai\framework对应D:\project\silai\framework

    类的定义文件

    如果命名空间前缀\silai对应基目录C:\silai,那么类\silai\Request应该怎么定义,定义文件又应该存放在哪里呢?定义如下:

    <?php
    namespace silai;
    
    class Request
    {
    }
    
    

    文件名应该是Request.php,文件应该存放在C:\silai\Request.php

    对于类\silai\web\Response又该怎样呢,首先这个类多了一个子命名空间web,那么默认情况下这个类应该放在C:\silai\web目录下,如果不想放在这里,可以指定\silai\web命名空间前缀对应其他目录。

    结束语

    研究透彻PSR-4规范,是学习PHP的基础。

    可以扫描二维码加小程序,观看实现符合PSR-4自动加载的视频教程。

    思籁教育Lite小程序

    相关文章

      网友评论

        本文标题:PSR-4命名空间前缀与基目录

        本文链接:https://www.haomeiwen.com/subject/xjafyxtx.html