PHP 導入 Composer 網站架設
2024/05/01 12:32
瀏覽31
迴響0
推薦0
引用0
網站架設
起首要設定 Namespace , PHP 的 namespace 可使用 composer.json 設定,設定檔類型以下:
建置情況
需要注意的是,上面三個都是互有聯系關系,聯系關系以下:
- composer.json 檔裡,利用 PSR4 ,設定為 "HelloWorld\\": "src" ,代表 HelloWorld 的 Namespace 會進來 src 找
- Number.php 天然就是放在 src 下面了
設定好之後,下 composer dump-autoload 會從頭產生 autoload 劃定規矩檔。只要程式一入手下手有載入 vendor/autoload.php ,以後就能夠在任何處所 new \HelloWorld\Number() 了。
Codeception 在開始履行前,會先載入 _bootstrap.php 做初始化,如載入 autoload.php 就是一個可以做的事,它的樣板檔也是這麼說的:
有看到版號的話,恭喜你,情況建好了!
再往返到方才的測什麼都能過的測試檔 NumberTest.php ,我們來加第一個真實的測試:
測試框架
昨天有寫出一些陽春的測試程式。固然夠用,但如果要做進階的測試方式或是分析測試進程,顯然要實作出更多功能才能符合需求。但不用擔憂,開源的世界裡有十分多先輩,實作出專為測試使用的框架,讓我們寫測試可以輕鬆很多。
開源專案用起來高興的話,無妨去 GitHub 按個 Star 支撐一下吧!
PHP 的測試框架裡,我最常利用的是 Codeception ,它是以 PHPUnit 為基礎打造出來的。會經常使用是因為它支援很是多框架與外掛,可以依個人喜歡去調整。
它會提醒說,有新增一個測試檔在 tests/unit/NumberTest.php 這裡。裡面預設有一個叫 testMe() 的方式,我們在裡面加一個必然會過的測試看看:
這邊解釋一下:
- Function 名稱習慣上會寫的很口語,猶如上面所看到的,因為測試成效看到的都是 function 名稱占多數。
- 測試套件凡是會供應很多 assert 供選擇,上例是最經常使用的 assertEquals() ,判定兩個值是不是相等。
執行一下,如果看到下面這張圖,代表你第一個測試寫成功了。
正式寫測試程式
Codeception 可以整合的功能良多,不外今天就先把單位測試寫好就好。將來測試會一向加上去,但對開辟者而言,只要下履行指令,它就會把所有測試都悉數跑過,並產生報表說測試有無通過,特別很是地方便。肯定指令可以操作後,接著下這個指令,就會幫你把一入手下手的目錄都初始化好:
它做了什麼上面都有寫,這部份就不贅述了。不外有兩個處所我小我習慣上會調整:
- .gitignore 它會新增一行,那行我會刪除
- 複製檔案 cp ./tests/_output/.gitignore ./tests/_support/_generated/
初始化完後,就能夠開始履行了
初始化目次佈局
這兩個指令會產生可履行的 composer.phar ,然後可以直接執行。想要用全域的體式格局履行需要再下這個指令:(以下會以全域的體式格局當典範榜樣)
利用 PHP 要裝套件的話,首推固然是 Composer 。安裝方法的懶人包如下:
第一次跑的了局以下:

當然,我們還沒最先寫測試呢!新增測試的方式以下:
目次佈局:(注意 Number.php 檔案位置)
$this->assertTrue($actual) 講白話一點指的是:假定 $actual 這個變數的內容是 true ,若是 false 的話,假定就錯了。以這個例子,這個假設是永遠正確的。我們來看履行結果:

假如看到跟上面一樣結果的話,恭喜你,第一個測試寫好了!
此中 composer.json 是定義這個專案(也就是這個目次)所需要安裝的套件為何,可使用 composer require <vendor>/<package> 的指令或手動點竄 JSON 新增。 --dev 參數則是符號此套件是開辟階段才會使用。不成能上線了才在測試,一定是開辟的時候測,所以 Codeception 會加 --dev 參數。
當一切就绪時,可以下這個指令確認是否有安裝成功:
安裝好後,建個空目次,進去下指令就可以安裝 Codeception 了:
再來先把昨天的 Number 類別加到專案裡,程式以下: (注意要加 namespace)
這個指令會產生 composer.json 、 composer.lock 兩個檔案與 vendor 目次。今朝的構造以下:
你可能會有興趣的文章:
限會員,要發表迴響,請先登入





