PSR-4命名空间前缀与基目录
完全相对类名是以`\`开头的,比如`\silai\controller\HomeController`,不以`\`开头的类名是相对类名,比如`controller\ArticleController`,那么相对指的是相对谁呢,相对
## 完全限定类名 完全相对类名是以`\`开头的,比如`\silai\controller\HomeController`,不以`\`开头的类名是相对类名,比如`controller\ArticleController`,那么相对指的是相对谁呢,相对用`namespace`关键字声明的命名空间。 ```php namespace silai; // 实际上是指`\silai\controller\ArticleController` controller\ArticleController; // 这个是完全限定类 \foo\bar\User; ``` ## 命名空间前缀 命名空间前缀是我们自己指定一的部分命名空间,比如这个命名空间,`\silai\framework\controller`PHP命名空间,我们可以指定`\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自动加载的视频教程。 (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |