YII2如何透過composer優化vendor

藏色散人
發布: 2019-08-21 14:53:32
轉載
2528 人瀏覽過

以下由composer使用教學專欄為大家介紹YII2如何透過composer優化vendor,希望對需要的朋友有幫助!

YII2如何透過composer優化vendor

本文討論透過composer工具安裝Yii2框架並優化Vendor過程中遇到的問題,約定讀者對composer基本原理有一定了解,並且有安裝Yii2框架的實際經驗。

在Yii2社群裡常常會遇到一類問題,那就是 安裝官方推薦的版本後

1 為什麼沒有vendor資料夾?

在Yii2 中,vendor是composer下載的依賴庫文件,官方的專案範本程式碼裡只有自己的專案文件,而其依賴的yii框架等類別庫,都記錄在composer.json裡面,只要安裝好composer,然後install或update即可。

2 自己安裝的Yii2的專案中,vendor中的套件在composer.json 中找不到對應,而這些套件大多是暫時不需要用到的,該如何remove,保持vendor最小化?

驗證過的場景

2.1 使用composer remove 刪除套件

所刪除的套件必須在vendor資料夾下的composer.json中有記錄,並且在刪除包的同時,所有的套件會重新安裝一次。

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

#開發模式下的套件會直接被刪除,刪除後執行項目,直接報錯。因此開發模式的套件不能全部刪除

YII2如何透過composer優化vendor

YII2如何透過composer優化vendor

2.3使用remove codeception/verify 刪除套件,大部分測試模式的套件均被刪除,根據我的以往開發經驗,單元測試相關的元件沒有使用到,所以可以remove codeception/verify 指令對Yii2的compposer套件進行精簡。這個指令是優化composer包的關鍵一環。

3 多個專案在一個工程下時,會不會因為第一次載入composer套件太多而造成載入的效能問題, 自帶的延遲載入是否能夠解決這個問題?

專案明顯不需要的元件可以直接remove處理掉,至於效能效能影響暫時還沒遇過。延遲載入算是框架層級的最佳化,我選擇相信它的能力

4 vendor路徑問題造成的目錄或檔案不存在提示

假設我們的專案路徑是E:sourcestemplates

在Vendor路徑有問題時,會出現以下類似的問題,即某個composer套件不存在

Invalid Parameter – yiibaseInvalidParamException
The file or directory to be published does not exist: E:sourcestemplatesbackendvendorbower-asset/jquery/dist
登入後複製

檔案包不存在只是表現,主要的原因是vendor路徑和工程的設定檔不對應。

在工程的主設定檔main.php下有關於vendor的設定入口,VendorPath具體值,要結合設定檔的路徑,請參考下面的兩張圖以及相關的路徑設定

第一幅

YII2如何透過composer優化vendor

'vendorPath' => dirname(dirname(__DIR__)) . '/vendor',
登入後複製

第二幅

YII2如何透過composer優化vendor

#
'vendorPath' => dirname(dirname(dirname(__DIR__))) . '/vendor',
登入後複製

總結:

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

1 composer install 和composer update的區別

2 composer版本管理和穩定性

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

以下命令區別參考網絡資料整理

composer install
登入後複製

應該是最常用的命令,composer會根據本地的composer.json安裝包,將下載的套件放入項目下的vendor目錄下,同時將安裝時候的套件版本資訊放入到composer.lock,以便鎖定版本.

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

composer update
登入後複製

composer .lock檔案中的套件版本會被更新,composer.json記錄的套件都會被更新到最新。

composer update指令要謹慎使用。

如果元件已經使用composer引用到專案中,成為公用元件,需要謹慎使用composer指令,當然需要專人負責維護,沒有共用操作權限。

更多composer使用教學課程,請造訪composer指令使用圖文教學欄位!

以上是YII2如何透過composer優化vendor的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:segmentfault.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板