中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

YII2怎么通過composer優化vendor

發布時間:2021-09-17 15:33:08 來源:億速云 閱讀:142 作者:chen 欄目:大數據

本篇內容介紹了“YII2怎么通過composer優化vendor”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

框架安裝問題

在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

vendor.jpg

YII2怎么通過composer優化vendor

composer.jpg

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

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

項目明顯不需要的組件可以直接remove處理掉,至于性能性能影響暫時還沒有遇到過。延遲加載算是框架級別的優化,我選擇相信它的能力。


4 vendor路徑問題


vendor路徑問題造成的目錄或文件不存在提示

假設我們的項目路徑是 E:\sources\templates

在Vendor路徑有問題時,會出現以下類似的問題,即某個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

文件包不存在只是表現,主要的原因是vendor路徑和工程的配置文件不對應。

在工程的主配置文件main.php下有關于vendor的配置入口,VendorPath具體值,要結合配置文件的路徑,請參照下面的兩幅圖以及相關的路徑配置

第一幅

YII2怎么通過composer優化vendor

vendorPath.jpg

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

第二幅

YII2怎么通過composer優化vendor

vendorPath3.jpg

'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引用到項目中,成為公共組件,需要謹慎使用composer命令,當然需要專人負責維護,不設置共享操作權限。

另外一種思路也是可以嘗試的,對于軟件安裝包的版本,統一以官方最新的版本為主,如果由此產生兼容或者其它問題,針對性的解決新問題。


“YII2怎么通過composer優化vendor”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

阿拉善盟| 湖南省| 垣曲县| 增城市| 台中市| 宁河县| 城步| 遂宁市| 酒泉市| 社旗县| 万安县| 淳安县| 文化| 从江县| 光泽县| 故城县| 五华县| 淮安市| 濮阳市| 昭觉县| 亚东县| 阜城县| 云霄县| 华安县| 清丰县| 仙桃市| 日照市| 万载县| 郓城县| 金山区| 鄂托克旗| 高阳县| 克拉玛依市| 林西县| 乌兰县| 青河县| 德格县| 尉氏县| 江城| 屯昌县| 会昌县|