国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

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

dcr309duan / 1457人閱讀

摘要:本文討論通過工具安裝框架并優(yōu)化過程中遇到的問題,約定讀者對(duì)基本原理有一定了解,并且有安裝框架的實(shí)際經(jīng)驗(yàn)。這個(gè)命令是優(yōu)化包的關(guān)鍵一環(huán)。命令要謹(jǐn)慎使用。

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

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

在Yii2 中,vendor是composer下載的依賴庫(kù)文件,官方的項(xiàng)目模板代碼里只有其自己的項(xiàng)目文件,而其依賴的yii框架等類庫(kù),都記錄在composer.json里面,只要安裝好composer,然后install或update即可。

2 自己安裝的Yii2的項(xiàng)目中,vendor中的包在composer.json 中找不到對(duì)應(yīng),而這些包大多是暫時(shí)不需要用到的,該如何remove,保持vendor最小化?
驗(yàn)證過的場(chǎng)景

2.1 使用 composer remove 刪除包
所刪除的包必須在vendor文件夾下的composer.json中有記錄,并且在刪除包的同時(shí),所有的包會(huì)重新安裝一次。

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

開發(fā)模式下的包會(huì)直接被刪除,刪除后運(yùn)行項(xiàng)目,直接報(bào)錯(cuò)。因此開發(fā)模式的包不能被全部刪除

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

3 多個(gè)項(xiàng)目在一個(gè)工程下時(shí),會(huì)不會(huì)因?yàn)槭状渭虞dcomposer包太多而引起加載的性能問題, 自帶的延遲加載是否能夠解決這個(gè)問題?

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

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

假設(shè)我們的項(xiàng)目路徑是 E:sourcestemplates

在Vendor路徑有問題時(shí),會(huì)出現(xiàn)以下類似的問題,即某個(gè)composer包不存在

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

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

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

第一幅

"vendorPath" => dirname(dirname(__DIR__)) . "/vendor",

第二幅

"vendorPath" => dirname(dirname(dirname(__DIR__))) . "/vendor",

總結(jié):

我們?cè)谑褂胏ompser時(shí)需要考慮以下三個(gè)問題

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

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

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

以下命令區(qū)別參考網(wǎng)絡(luò)資料整理

composer install

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

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

composer update

composer.lock文件中的包版本會(huì)被更新,composer.json記錄的包都會(huì)被更新到最新。
composer update命令要謹(jǐn)慎使用。

如果組件已經(jīng)使用composer引用到項(xiàng)目中,成為公共組件,需要謹(jǐn)慎使用composer命令,當(dāng)然需要專人負(fù)責(zé)維護(hù),沒有共享操作權(quán)限。

參考文檔
Composer四種加載方式
http://nai8.me/sapper-view.ht...
https://segmentfault.com/q/10...

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/25744.html

相關(guān)文章

  • Yii2中的代碼自動(dòng)加載機(jī)制

    摘要:中是如何實(shí)現(xiàn)代碼的自動(dòng)加載的入口腳本的以下兩行代碼其中的作用注冊(cè)為自動(dòng)加載函數(shù)。這個(gè)負(fù)責(zé)引入了一個(gè)類中的,隨后立即解除注冊(cè)。注冊(cè)中的為自動(dòng)加載函數(shù),并利用配置文件即目錄下的文件對(duì)這個(gè)自動(dòng)加載函數(shù)進(jìn)行了初始化。 1.基本知識(shí) Include與require 的作用: 當(dāng)一個(gè)文件被包含時(shí),其中所包含的代碼繼承了 include 所在行的變量范圍。從該處開始,調(diào)用文件在該行處可用的任何...

    Jaden 評(píng)論0 收藏0
  • Yii修行之路 - Extension 擴(kuò)展

    摘要:運(yùn)行來安裝指定的擴(kuò)展。這更便于用戶辨別是否是的擴(kuò)展。當(dāng)用戶運(yùn)行安裝一個(gè)擴(kuò)展時(shí),文件會(huì)被自動(dòng)更新使之包含新擴(kuò)展的信息。上述代碼表明該擴(kuò)展依賴于包。例如,上述的條目聲明將對(duì)應(yīng)于別名。為達(dá)到這個(gè)目的,你應(yīng)當(dāng)在公開發(fā)布前做測(cè)試。 簡(jiǎn)述 擴(kuò)展是專門設(shè)計(jì)的在 Yii 應(yīng)用中隨時(shí)可拿來使用的, 并可重發(fā)布的軟件包。 基礎(chǔ) 例如, yiisoft/yii2-debug 擴(kuò)展在你的應(yīng)用的每個(gè)頁(yè)面底部添加...

    bovenson 評(píng)論0 收藏0
  • PHP回顧之Composer

    摘要:本文簡(jiǎn)要回顧相關(guān)概念和用法。相比之下已是明日黃花。分別對(duì)應(yīng)的命令是根據(jù)關(guān)鍵字查找依賴包,例如查找本人發(fā)布的包。作為目前包依賴管理的最佳工具,值得每一位開發(fā)人員掌握。 轉(zhuǎn)載請(qǐng)注明文章出處:https://tlanyan.me/php-review... PHP回顧系列目錄 PHP基礎(chǔ) web請(qǐng)求 cookie web響應(yīng) session 數(shù)據(jù)庫(kù)操作 加解密 Composer是PHP...

    Ocean 評(píng)論0 收藏0
  • 使用Codeception進(jìn)行Yii2的單元測(cè)試(一)安裝以及簡(jiǎn)介篇

    摘要:一簡(jiǎn)介作為工程師,我們很可能遇到一些有必要的進(jìn)行單元測(cè)試的場(chǎng)景。本系列文章就來介紹下,在框架下,如何使用進(jìn)行單元測(cè)試。 一、簡(jiǎn)介 作為php工程師,我們很可能遇到一些有必要的進(jìn)行單元測(cè)試的場(chǎng)景。本系列文章就來介紹下,在Yii2框架下,如何使用Codeception進(jìn)行單元測(cè)試。本篇就首先介紹Yii2,以及Codeception的安裝。 二、Yii2和codeception安裝 安裝Yi...

    dabai 評(píng)論0 收藏0
  • Yii2:教你一步步寫一個(gè)微信商城(一)

    摘要:本教程主要基于大神的開源商城,為大家解讀的源碼,由于原版商城更多是針對(duì)國(guó)際業(yè)務(wù),因此本教程會(huì)適當(dāng)修改,使其更適合于微信環(huán)境。 本教程主要基于 terry 大神的開源商城 Fecshop,為大家解讀 Fecshop 的源碼,由于原版商城更多是針對(duì)國(guó)際業(yè)務(wù),因此本教程會(huì)適當(dāng)修改,使其更適合于微信環(huán)境。由于商城源碼復(fù)雜,本教程將長(zhǎng)期更新。本人也是邊學(xué)習(xí)邊寫這份教程,過程中難免會(huì)出現(xiàn)錯(cuò)誤,還請(qǐng)...

    Invoker 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<