<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          PHP面試中經(jīng)常出現(xiàn)的composer 問題總結(jié)

          共 2307字,需瀏覽 5分鐘

           ·

          2020-11-08 00:42


          前言


          今天使用composer create-project 安裝了一下thinkphp6,以前是知道怎么用create-project這個(gè)命令來(lái)安裝項(xiàng)目的,很長(zhǎng)一段時(shí)間沒有使用了。還好自己還不算太老,腦子還可以動(dòng)起來(lái),索性就一遍看文檔,一遍寫下筆記。


          (一)做什么的

          到底什么時(shí)候會(huì)用到composer create-project 這個(gè)命令呢, 一般情況而言都是使用composer require來(lái)引入以來(lái)庫(kù),很少使用create-project 來(lái)安裝項(xiàng)目,我記得上次使用這個(gè)命令還是用thinkphp5.1寫項(xiàng)目的時(shí)候。 那這句話到底有什么作用呢,下面引用Composer官網(wǎng)的一句話

          你可以使用 Composer 從現(xiàn)有的包中創(chuàng)建一個(gè)新的項(xiàng)目。這相當(dāng)于執(zhí)行了一個(gè) git clone 或 svn checkout 命令后將這個(gè)包的依賴安裝到它自己的 vendor 目錄。

          從上面我們可以讀到這些信息,它會(huì)做這樣的兩個(gè)操作:

          • 從現(xiàn)有的包中創(chuàng)建一個(gè)新項(xiàng)目

          • 安裝這個(gè)包中的依賴到vendor

          也就是會(huì)創(chuàng)建一個(gè)新項(xiàng)目,并且會(huì)把這個(gè)項(xiàng)目中的依賴下載到vendor目錄中。那這個(gè)包是哪里來(lái)的呢,Composer說(shuō)了會(huì)在 packagist.org上查找你指定的包


          (二)怎么用

          知道做什么的,要怎么使用呢。常規(guī)的使用是這樣的composer create-project topthink/think think 5.1.*,

          ?對(duì)這個(gè)命令詳細(xì)說(shuō)一下,分為四部分講解

          • 第一部分就是composer create-project,告訴composer我們要?jiǎng)?chuàng)建項(xiàng)目;


          • 第二部分topthink/think是包名,這個(gè)包名是在packagist.org網(wǎng)站可以搜索的到的,如果找不到也創(chuàng)建不了項(xiàng)目,composer會(huì)報(bào)錯(cuò);


          • 第三部分think, 這個(gè)是給創(chuàng)建的項(xiàng)目取一個(gè)名字,其實(shí)也就是一個(gè)目錄名字,這個(gè)目錄如果在的話,目錄一定要為空,不然創(chuàng)建項(xiàng)目會(huì)失敗,如果目錄不存在會(huì)自動(dòng)創(chuàng)建,目錄起英文名字,中文會(huì)遇到一些不可描述的問題


          • 第四部分,創(chuàng)建的項(xiàng)目的版本,因?yàn)槲覀儎?chuàng)建的項(xiàng)目來(lái)自于packagist庫(kù)中的包,包有不同的版本,以我創(chuàng)建的topthink\think為例就有5.1.*、5.0.*,如果我們不指定版本號(hào),默認(rèn)會(huì)使用新的版本來(lái)創(chuàng)建,當(dāng)然也可以使用指定的版本5.1.38。這里也可以使用通配符5.1.*,賦值運(yùn)算符~5.1等等


          (三)參數(shù)

          composer create-project 這個(gè)命令有一些參數(shù),比如--prefer-dist當(dāng)有可用的包從dist安裝項(xiàng)目,--prefer-source當(dāng)有可用的項(xiàng)目從source安裝

          不僅我上面提到的參數(shù),還有一些參數(shù),但是在工作中一致沒有用過(guò),我也沒有仔細(xì)研究過(guò),即便是看了,當(dāng)時(shí)了解了也忘記了,所以我的第一步操作是把composer create-project這個(gè)命令學(xué)會(huì),再來(lái)了解它的參數(shù)使用方法


          (四)其他

          也不是說(shuō)使用composer創(chuàng)建項(xiàng)目只能使用composer create-project, 也可以使用git clone把項(xiàng)目克隆到你的電腦上,方法多種多樣,就看你使用哪一種,對(duì)于我而言我更喜歡使用composer create-project來(lái)安裝一個(gè)thinkphp項(xiàng)目


          (五)擴(kuò)展:composer 包版本的范圍指定

          版本約束使用示例

          • :?和?=?都可以

          • 版本約束可以加引號(hào),也可以不加

          • composer文檔使用的是?:?并且版本約束加引號(hào)(可以說(shuō)更加規(guī)范吧)

          composer?create-project?topthink/think:"5.1.*"composer create-project topthink/think=5.1.*

          關(guān)于擴(kuò)展包的安裝方法
          那么,準(zhǔn)備添加一個(gè)擴(kuò)展包,install, update, require 三個(gè)命令都可以用來(lái)安裝擴(kuò)展包,選擇哪一個(gè)才是正確的呢?

          答案是:使用 composer require 命令

          另外,在手動(dòng)修改 composer.json 添加擴(kuò)展包后,composer update new/package 進(jìn)行指定擴(kuò)展包更新的方式,也可以正確的安裝,不過(guò)不建議使用這種方法,因?yàn)?,一旦你忘記敲定后面的擴(kuò)展包名,就會(huì)進(jìn)入萬(wàn)劫不復(fù)的狀態(tài),別給自己留坑呀。

          上面的概念不論對(duì)新手或者老手來(lái)說(shuō),都比較混淆,主要記住這個(gè)概念:

          原有項(xiàng)目新添加擴(kuò)展的,都使用 composer require new/package 這種方式來(lái)安裝。


          (六)名詞解釋
          composer install - 如有 composer.lock 文件,直接安裝,否則從 composer.json 安裝最新擴(kuò)展包和依賴;
          composer update - 從 composer.json 安裝最新擴(kuò)展包和依賴;
          composer update vendor/package - 從 composer.json 或者對(duì)應(yīng)包的配置,并更新到最新;
          composer require new/package - 添加安裝 new/package, 可以指定版本,如:composer require new/package ~2.5.

          鏈接:https://juejin.im/post/6844903937011613704

          瀏覽 51
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  手机av免费 | 黄色爱爱 | 中文字幕第一页AV | 国产高清在线视频 | 免费能看的黄色 |