完全限定類名
完全相對(duì)類名是以\開頭的,比如\silai\controller\HomeController,不以\開頭的類名是相對(duì)類名,比如controller\ArticleController,那么相對(duì)指的是相對(duì)誰呢,相對(duì)用namespace關(guān)鍵字聲明的命名空間。
<?php
namespace silai;
// 實(shí)際上是指`\silai\controller\ArticleController`
controller\ArticleController;
// 這個(gè)是完全限定類
\foo\bar\User;
命名空間前綴
命名空間前綴是我們自己指定一的部分命名空間,比如這個(gè)命名空間,\silai\framework\controller,我們可以指定\silai這一部分作為一個(gè)前綴,也可以指定\silai\framework這一部分作為前綴,甚至指定\silai\framework\controller作為前綴。
基目錄
指定了命名空間前綴后,應(yīng)該再指定這個(gè)前綴的基目錄,可以指定一個(gè)或多個(gè)基目錄。比如上面的前綴\silai,指定它對(duì)應(yīng)目錄C:\silai;前綴\silai\framework對(duì)應(yīng)D:\project\silai\framework。
類的定義文件
如果命名空間前綴\silai對(duì)應(yīng)基目錄C:\silai,那么類\silai\Request應(yīng)該怎么定義,定義文件又應(yīng)該存放在哪里呢?定義如下:
<?php
namespace silai;
class Request
{
}
文件名應(yīng)該是Request.php,文件應(yīng)該存放在C:\silai\Request.php。
對(duì)于類\silai\web\Response又該怎樣呢,首先這個(gè)類多了一個(gè)子命名空間web,那么默認(rèn)情況下這個(gè)類應(yīng)該放在C:\silai\web目錄下,如果不想放在這里,可以指定\silai\web命名空間前綴對(duì)應(yīng)其他目錄。
結(jié)束語
研究透徹PSR-4規(guī)范,是學(xué)習(xí)PHP的基礎(chǔ)。
可以掃描二維碼加小程序,觀看實(shí)現(xiàn)符合PSR-4自動(dòng)加載的視頻教程。
