YII2通過composer優(yōu)化vendor

本文討論通過composer工具安裝Yii2框架并優(yōu)化Vendor過程中遇到的問題念颈,約定讀者對composer基本原理有一定了解,并且有安裝Yii2框架的實際經(jīng)驗连霉。

ios7-compose-outline.png

框架安裝問題

在Yii2社區(qū)里經(jīng)常會遇到一類問題榴芳,那就是 安裝完官方推薦的版本后
1 為什么沒有vendor文件夾?

在Yii2 中跺撼,vendor是composer下載的依賴庫文件窟感,官方的項目模板代碼里只有其自己的項目文件,而其依賴的yii框架等類庫歉井,都記錄在composer.json里面柿祈,只要安裝好composer,然后install或update即可哩至。

2 自己安裝的Yii2的項目中躏嚎,vendor中的包在composer.json 中找不到對應(yīng),而這些包大多是暫時不需要用到的菩貌,該如何remove卢佣,保持vendor最小化?
驗證過的場景

2.1 使用 composer remove 刪除包
所刪除的包必須在vendor文件夾下的composer.json中有記錄箭阶,并且在刪除包的同時虚茶,所有的包會重新安裝一次。

2.2 使用 composer update --no-dev 刪除包

開發(fā)模式下的包會直接被刪除仇参,刪除后運行項目媳危,直接報錯。因此開發(fā)模式的包不能被全部刪除

vendor.jpg
composer.jpg

2.3使用 remove codeception/verify 刪除包冈敛,大部分測試模式下的包均被刪除待笑,根據(jù)我的以往開發(fā)經(jīng)驗,單元測試相關(guān)的組件沒有使用到抓谴,所以可以 remove codeception/verify 命令對Yii2的compposer包進行精簡暮蹂。這個命令是優(yōu)化composer包的關(guān)鍵一環(huán)。

3 多個項目在一個工程下時癌压,會不會因為首次加載composer包太多而引起加載的性能問題仰泻, 自帶的延遲加載是否能夠解決這個問題?

項目明顯不需要的組件可以直接remove處理掉滩届,至于性能性能影響暫時還沒有遇到過集侯。延遲加載算是框架級別的優(yōu)化,我選擇相信它的能力
4 vendor路徑問題
vendor路徑問題造成的目錄或文件不存在提示

假設(shè)我們的項目路徑是 E:\sources\templates

在Vendor路徑有問題時,會出現(xiàn)以下類似的問題棠枉,即某個composer包不存在

Invalid Parameter – yii\base\InvalidParamException
The file or directory to be published does not exist: E:\sources\templates\backend\vendor\bower-asset/jquery/dist

文件包不存在只是表現(xiàn)浓体,主要的原因是vendor路徑和工程的配置文件不對應(yīng)。

在工程的主配置文件main.php下有關(guān)于vendor的配置入口辈讶,VendorPath具體值命浴,要結(jié)合配置文件的路徑,請參照下面的兩幅圖以及相關(guān)的路徑配置

第一幅

vendorPath.jpg

'vendorPath' => dirname(dirname(DIR)) . '/vendor',

第二幅


vendorPath2.jpg

'vendorPath' => dirname(dirname(dirname(DIR))) . '/vendor',

總結(jié)

我們在使用compser時需要考慮以下三個問題

1 composer install 和composer update的區(qū)別

2 composer版本管理和穩(wěn)定性

3 公共組件如何以 composer包的方式輸出和維護

composer install

應(yīng)該是最常用的命令,composer會根據(jù)本地的composer.json安裝包,將下載的包放入項目下的vendor目錄下,同時將安裝時候的包版本信息放入到composer.lock,以便鎖定版本.

其實在install的時候,假如發(fā)現(xiàn)composer.lock版本和目前vendor目錄下的代碼版本是一致的,則Composer會什么也不做,composer.lock的目的就是讓你安心在目前這個版本下工作,而不獲取最新版本的包.

composer update

composer.lock文件中的包版本會被更新贱除,composer.json記錄的包都會被更新到最新生闲。
這個命令要謹慎使用。

如果組件已經(jīng)使用composer引用到項目中月幌,成為公共組件碍讯,需要謹慎使用composer命令,當然需要專人負責(zé)維護扯躺,不設(shè)置共享操作權(quán)限捉兴。

另外一種思路也是可以嘗試的,對于軟件安裝包的版本缅帘,統(tǒng)一以官方最新的版本為主轴术,如果由此產(chǎn)生兼容或者其它問題,針對性的解決新問題钦无。

參考文檔
Composer四種加載方式
https://segmentfault.com/q/1010000004047286/a-1020000005344768

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末逗栽,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子失暂,更是在濱河造成了極大的恐慌彼宠,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,386評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件弟塞,死亡現(xiàn)場離奇詭異凭峡,居然都是意外死亡,警方通過查閱死者的電腦和手機决记,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評論 3 394
  • 文/潘曉璐 我一進店門摧冀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人系宫,你說我怎么就攤上這事索昂。” “怎么了扩借?”我有些...
    開封第一講書人閱讀 164,704評論 0 353
  • 文/不壞的土叔 我叫張陵椒惨,是天一觀的道長。 經(jīng)常有香客問我潮罪,道長康谆,這世上最難降的妖魔是什么领斥? 我笑而不...
    開封第一講書人閱讀 58,702評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮沃暗,結(jié)果婚禮上月洛,老公的妹妹穿的比我還像新娘。我一直安慰自己描睦,他們只是感情好膊存,可當我...
    茶點故事閱讀 67,716評論 6 392
  • 文/花漫 我一把揭開白布导而。 她就那樣靜靜地躺著忱叭,像睡著了一般。 火紅的嫁衣襯著肌膚如雪今艺。 梳的紋絲不亂的頭發(fā)上韵丑,一...
    開封第一講書人閱讀 51,573評論 1 305
  • 那天,我揣著相機與錄音虚缎,去河邊找鬼撵彻。 笑死,一個胖子當著我的面吹牛实牡,可吹牛的內(nèi)容都是我干的陌僵。 我是一名探鬼主播,決...
    沈念sama閱讀 40,314評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼创坞,長吁一口氣:“原來是場噩夢啊……” “哼碗短!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起题涨,我...
    開封第一講書人閱讀 39,230評論 0 276
  • 序言:老撾萬榮一對情侶失蹤偎谁,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后纲堵,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體巡雨,經(jīng)...
    沈念sama閱讀 45,680評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,873評論 3 336
  • 正文 我和宋清朗相戀三年席函,在試婚紗的時候發(fā)現(xiàn)自己被綠了铐望。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,991評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡茂附,死狀恐怖正蛙,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情何之,我是刑警寧澤跟畅,帶...
    沈念sama閱讀 35,706評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站溶推,受9級特大地震影響徊件,放射性物質(zhì)發(fā)生泄漏奸攻。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,329評論 3 330
  • 文/蒙蒙 一虱痕、第九天 我趴在偏房一處隱蔽的房頂上張望睹耐。 院中可真熱鬧,春花似錦部翘、人聲如沸硝训。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽极阅。三九已至掉缺,卻和暖如春喉祭,著一層夾襖步出監(jiān)牢的瞬間括改,已是汗流浹背弃酌。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評論 1 270
  • 我被黑心中介騙來泰國打工犬第, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留荸哟,地道東北人假哎。 一個月前我還...
    沈念sama閱讀 48,158評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像鞍历,于是被迫代替她去往敵國和親舵抹。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,941評論 2 355

推薦閱讀更多精彩內(nèi)容