摘要:接觸過(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
摘要:首先支持下黃老師的視頻網(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)買視頻...
摘要:的包管理器是,用來(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...
摘要:框架組件化改造框架從單體應(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)...
摘要:本文簡(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...
摘要:更換源更新源使用的源通過(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...
閱讀 2149·2023-04-25 18:49
閱讀 1854·2019-08-30 14:02
閱讀 2657·2019-08-29 17:24
閱讀 3334·2019-08-28 18:10
閱讀 2938·2019-08-28 18:03
閱讀 503·2019-08-26 12:01
閱讀 3322·2019-08-26 11:31
閱讀 1442·2019-08-26 10:29