成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

PHP包管理工具--Composer自動(dòng)加載

xiaoqibTn / 1016人閱讀

摘要:接觸過(guò)的同學(xué)都知道使用作為項(xiàng)目的包管理工具但是并不是獨(dú)有的是的包管理工具這兩者的關(guān)系就像于于一樣但是發(fā)現(xiàn)真正項(xiàng)目中使用還是比較少的所以這里這里寫(xiě)一遍文章介紹的使用幫助那些對(duì)于還是有點(diǎn)模糊的同學(xué)此文跟沒(méi)有任何聯(lián)系安裝的方式就不講了具體安裝方式

接觸過(guò)Laravel的同學(xué)都知道,Laravel使用Composer作為項(xiàng)目的包管理工具.但是Composer并不是Laravel獨(dú)有的,Composer是PHP的包管理工具,這兩者的關(guān)系就像pip于Python,npm于Node一樣.但是發(fā)現(xiàn)真正項(xiàng)目中使用composer還是比較少的, 所以這里這里寫(xiě)一遍文章介紹Composer的使用,幫助那些對(duì)于Composer還是有點(diǎn)模糊的同學(xué).此文跟Laravel沒(méi)有任何聯(lián)系.

安裝Composer的方式就不講了, 具體安裝方式可以查看這里.

基本使用.

安裝好Composer之后,只要在項(xiàng)目根目錄新建compsoser.json之后就可以使用composer了,這點(diǎn)跟npm很像.composer.json的內(nèi)容是以json格式書(shū)寫(xiě)的.

包管理工具最大的作用就是幫助我們管理包的依賴關(guān)系.當(dāng)你的項(xiàng)目中需要一個(gè)日志系統(tǒng)的時(shí)候,你又不想去實(shí)現(xiàn),想在網(wǎng)上找一找開(kāi)源的日志系統(tǒng).于是你找到了一個(gè)叫 monolog/monolog的好東西.但是怎么在你的項(xiàng)目中使用它?這個(gè)時(shí)候就需要composer了.

在你的composer.json里面添加如下代碼:

{
  "require": {
    "monolog/monolog": "~1.13"
  }
}

前面說(shuō)過(guò),composer.json是以json格式書(shū)寫(xiě)的.require表示當(dāng)前項(xiàng)目依賴于哪些包.寫(xiě)好之后,只要執(zhí)行composer install,那么composer就會(huì)自動(dòng)為我們下載這些包.下載好之后你會(huì)在項(xiàng)目中看到一個(gè)vendor的目錄.

your_project_root_dir/
    composer.json
    vendor/
        .....
        .....

你在composer.json中記錄的所有依賴都會(huì)被下載到這里.那么下載好之后如何使用這些包?我們都 知道在PHP中引入文件是一件很麻煩的事情,require, include, require_once, include_once都有那么點(diǎn)問(wèn)題,使用自動(dòng)加載函數(shù)spl_autoload_register吧,又得寫(xiě)一大堆邏輯.但是使用composer就很簡(jiǎn)單了,只要在你的index.php文件加上require_once __DIR__ . "/vendor/autoload.php";之后就可以使用這些第三方包了.

autoload

上面我們演示了如何通過(guò)使用composer使用第三方包, 但是有時(shí)候我們項(xiàng)目自己本身也有很多依賴要處理,但是寫(xiě)include之類總是不優(yōu)雅,這個(gè)時(shí)候我們也可以使用composer來(lái)加載我們自己寫(xiě)的php代碼.讓composer來(lái)幫我們實(shí)現(xiàn)自動(dòng)加載.

在composer.json有一個(gè)autoload字段就是來(lái)幫助我們實(shí)現(xiàn)自動(dòng)加載的,其可以根據(jù)以下的4種定義方式來(lái)實(shí)現(xiàn)自動(dòng)加載:

file

classmap

PSR-4

PSR-0

其中PSR-0和PSR-4是php編碼標(biāo)準(zhǔn).如果不清楚這個(gè)是什么東西的話, 可執(zhí)行g(shù)oogle.由于這里PSR-0標(biāo)準(zhǔn)已經(jīng)不被推薦,所以我們下面介紹一下其他三種方式的使用.

PSR-4

假設(shè)我們現(xiàn)在有如下的目錄結(jié)構(gòu):

your_project_root_dir/
    app/
        appTest1.php
        sub/
            appTest2.php
    vendor/
    composer.json

這么一來(lái),根據(jù)PSR-4的標(biāo)準(zhǔn), appTest1.php的命名空間應(yīng)該是App,而appTest2.php的命名空間為Appsub.

在composer.json添加如下代碼:

    "autoload":{
        "psr-4":{
            "App//":"app/"
        },
    }

其中autoload表明了這是為了實(shí)現(xiàn)自動(dòng)加載.而psr-4說(shuō)明了我們這里使用PSR-4的自動(dòng)加載規(guī)范."App//":"app/"表示App這個(gè)命名空間對(duì)應(yīng)到app這個(gè)目錄下.這個(gè)時(shí)候我們執(zhí)行composer命令composer dumpautoload -o

執(zhí)行完畢之后還是在index.php加上require_once __DIR__ . "/vendor/autoload.php",之后我們就可以直接使用app目錄下的類而不用考慮自動(dòng)加載的問(wèn)題了, 因?yàn)閏omposer都幫我們處理好了.

files&&classmap

當(dāng)我們的目錄結(jié)構(gòu)不符合PSR-4標(biāo)準(zhǔn)的時(shí)候,我們也可以使用這兩種方式來(lái)添加自動(dòng)依賴.這兩種方式使用起來(lái)就相當(dāng)簡(jiǎn)單了.

    "autoload":{
        "files":["src/test.php"],
        "psr-4":{
            "App//":"app/"
        },
        "classmap":["lib/"]
    }

如上.files節(jié)點(diǎn)上添加src/test.php,那么composer就會(huì)自動(dòng)為你加載這個(gè)文件,使用classmap則會(huì)為你加載lib/目錄下的所有文件.修改完autoload的內(nèi)容之后要記得執(zhí)行composer dumpautoload -o來(lái)重新生成加載文件.

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/22192.html

相關(guān)文章

  • php管理依賴關(guān)系工具composer學(xué)習(xí)筆記

    摘要:首先支持下黃老師的視頻網(wǎng)站轉(zhuǎn)型這篇的學(xué)習(xí)筆記也是根據(jù)他的視頻教程寫(xiě)的,一共十集,講解的很簡(jiǎn)單感興趣的同志們可以上他視頻網(wǎng)站購(gòu)買視頻,網(wǎng)站地址放在文末我的博客作用自動(dòng)安裝所需要的模塊,自動(dòng)加載管理項(xiàng)目,發(fā)布到網(wǎng)上上去是默認(rèn)的加載組件地址安裝下 首先支持下黃老師的視頻網(wǎng)站轉(zhuǎn)型這篇composer的學(xué)習(xí)筆記也是根據(jù)他的視頻教程寫(xiě)的,一共十集,講解的很簡(jiǎn)單感興趣的同志們可以上他視頻網(wǎng)站購(gòu)買視頻...

    CoyPan 評(píng)論0 收藏0
  • PHP 與擴(kuò)展的管理工具 Pear、Composer 與 Pecl

    摘要:的包管理器是,用來(lái)瀏覽并搜索查看最新發(fā)行版下載。的包管理器是下一代的,使用編寫(xiě),以格式發(fā)布。二發(fā)布時(shí)間軸三安裝與使用安裝主要是安裝和這兩個(gè)包管理器,然后通過(guò)包管理器安裝其他。 PHP社區(qū)提供了幾個(gè)管理擴(kuò)展和包的工具包括Pecl、Pear、Pear2和Composer。在不了解的情況下去使用這些工具必然會(huì)出現(xiàn)困惑,所以下面就簡(jiǎn)單介紹下這幾個(gè)管理工具。 一、簡(jiǎn)介 下面簡(jiǎn)要介紹 Pear、P...

    Batkid 評(píng)論0 收藏0
  • Swoft| Swoft 框架組件化改造

    摘要:框架組件化改造框架從單體應(yīng)用到組件化改造的架構(gòu)升級(jí)之路經(jīng)過(guò)一年多的開(kāi)發(fā)框架功能越來(lái)越完善也越來(lái)越復(fù)雜初創(chuàng)時(shí)期的單體應(yīng)用已經(jīng)無(wú)法支撐項(xiàng)目的快速發(fā)展于是開(kāi)發(fā)組在年前為版制定了組件化改造的重構(gòu)方案內(nèi)容速覽組件化原理包管理基礎(chǔ)知識(shí)組件化方案來(lái) date: 2018-3-21 13:22:16title: Swoft| Swoft 框架組件化改造description: Swoft 框架從單體應(yīng)...

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

    摘要:本文簡(jiǎn)要回顧相關(guān)概念和用法。相比之下已是明日黃花。分別對(duì)應(yīng)的命令是根據(jù)關(guān)鍵字查找依賴包,例如查找本人發(fā)布的包。作為目前包依賴管理的最佳工具,值得每一位開(kāi)發(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
  • 使用 docker-compose 搭建 Laravel 環(huán)境 (三)

    摘要:更換源更新源使用的源通過(guò)安裝腳本安裝應(yīng)用所需要的依賴。 showImg(https://segmentfault.com/img/remote/1460000011106825); 有了第二篇《使用 Docker 搭建簡(jiǎn)易的 Java Web 環(huán)境 (二)》,懂了如何通過(guò)單一鏡像創(chuàng)建 Docker 環(huán)境,這篇主要學(xué)習(xí)如何使用「docker-compose」。目標(biāo)是:搭建 Laravel...

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

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

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<