php開發(fā)composer拓展包第一節(jié)

雖然說擴(kuò)展包并沒有什么強(qiáng)制的規(guī)定一定要如何組織代碼,但是我們推薦根據(jù)業(yè)界約定俗成的結(jié)構(gòu):

weather/├──.editorconfig# 編輯器配置文件,比如縮進(jìn)大小、換行模式等├──.gitattributes# git 配置文件,可以設(shè)計(jì)導(dǎo)出時(shí)忽略文件等├──.gitignore# git 忽略文件配置列表├──.php_cs# PHP-CS-Fixer 配置文件├──README.md? ? ├── composer.json├── phpunit.xml.dist├── src│? └──.gitkeep└── tests? ? └──.gitkeep

上面這個(gè)包結(jié)構(gòu)適用于幾乎所有的 PHP 擴(kuò)展包,如果你的擴(kuò)展包有其它附加內(nèi)容,也可以自由地做一些調(diào)整,只要滿足清晰合理即可。

結(jié)構(gòu)說明

src 目錄

通常我們將源代碼放置到此目錄下,文件名與類命名遵循駝峰命名法,目錄與命名空間一致。

注意:我們命名空間通常是按包名來的,然后?src?映射到駝峰寫法的命名空間(例如:包?overtrue/weather?的命名空間為?Overtrue\Weather)。

比如?src\Weather.php?文件的命名空間為?Overtrue\Weather,類名為?Overtrue\Weather\Weather。

代碼組織結(jié)構(gòu)請符合?PSR-4 規(guī)范。

tests 目錄

用于存放單元測試或者功能測試的測試用例代碼,與 src 組織規(guī)則基本一致。

.editorconfig 文件

EditorConfig?的配置文件,EditorConfig 是一套用于統(tǒng)一代碼格式的解決方案,很多項(xiàng)目都有用到,比如 Laravel、jQuery、Underscore 和 Ruby 等等。

EditorConfig 可以幫助開發(fā)者在不同的編輯器和 IDE 之間定義和維護(hù)一致的代碼風(fēng)格。EditorConfig 包含一個(gè)用于定義代碼格式的文件和一批編輯器插件,這些插件可以讓編輯器讀取配置文件并依此格式化代碼。EditorConfig 的配置文件十分易讀,并且可以很好的在 VCS(Version Control System)下工作。

簡單的說就是,這個(gè)配置文件定義了一些規(guī)則,比如 PHP 縮進(jìn)是用空格還是用 Tab。它會被現(xiàn)代的編輯器所識別并應(yīng)用(部分編輯器可能需要安裝對應(yīng)的插件,請參考?EditorConfig 官網(wǎng)?)使用。

.gitattributes

Git 的屬性配置文件,你可以對個(gè)別文件或目錄定義不同的合并策略,讓 Git 知道怎樣比較非文本文件,在你提交或簽出前讓 Git 過濾內(nèi)容。你將在這部分了解到能在自己的項(xiàng)目中使用的屬性,以及一些實(shí)例。更多請參考:《自定義 Git - Git 屬性》- git-scm.com

.gitignore

Git 忽略文件列表配置文件,將不需要納入版本控制的文件或者目錄按行配置在該文件即可。

.php_cs

代碼格式修復(fù)工具?PHP-CS-Fixer?配置文件,它可以按配置的標(biāo)準(zhǔn)自動修復(fù)代碼格式,以及統(tǒng)一文件頭注釋等非常多的功能。

README.md

項(xiàng)目說明文檔,一份項(xiàng)目介紹與使用指引,維護(hù)狀態(tài)授權(quán)方式等。

composer.json

Composer?配置文件。

phpunit.xml.dist

PHPUnit?配置文件,指定測試目錄與測試環(huán)境變量等,具體內(nèi)容請參考官方文檔:《組織測試:用 XML 配置來編排測試套件》- PHPunit。

.gitkeep

如果一個(gè)目錄為空,我們是無法納入到版本控制中的,所以我們創(chuàng)建了一個(gè)隨意命名(最好還是按業(yè)界通用做法命名為?.gitkeep)的隱藏文件來保證?目錄不為空。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 前言 Git使用教程 Git是什么 Git是一個(gè)開源的分布式版本控制系統(tǒng),用于敏捷高效地處理任何或小或大的項(xiàng)目。 ...
    90后的思維閱讀 1,027評論 0 0
  • 介紹 PHPUnit 測試的基礎(chǔ)知識,使用基本的 PHPUnit 斷言和 Laravel 測試助手。 介紹 PHP...
    summerbluet閱讀 5,035評論 0 7
  • 午夜時(shí)分, 華燈初上,適逢親愛的的祖國,進(jìn)入69歲生日之時(shí)。我所在的城市,在國慶的夜晚,都被一盞盞華燈點(diǎn)綴...
    靜水2018閱讀 1,106評論 0 2
  • 您的一個(gè)點(diǎn)贊,一句留言,一次打賞,就是小編創(chuàng)作的動力源泉!轉(zhuǎn)載請注明原作者!》》》打賞直通車 1.準(zhǔn)備工作 pdf...
    Marydon閱讀 423評論 0 0
  • 自從老杜上臺以后,中菲關(guān)系突飛猛進(jìn),日益好轉(zhuǎn)?,F(xiàn)在去菲律賓旅游的人越來越多了。 菲律賓是一個(gè)美麗的群島國家,位于西...
    北侖情閱讀 177評論 0 0

友情鏈接更多精彩內(nèi)容