摘要:接觸過的同學(xué)都知道使用作為項目的包管理工具但是并不是獨有的是的包管理工具這兩者的關(guān)系就像于于一樣但是發(fā)現(xiàn)真正項目中使用還是比較少的所以這里這里寫一遍文章介紹的使用幫助那些對于還是有點模糊的同學(xué)此文跟沒有任何聯(lián)系安裝的方式就不講了具體安裝方式
接觸過Laravel的同學(xué)都知道,Laravel使用Composer作為項目的包管理工具.但是Composer并不是Laravel獨有的,Composer是PHP的包管理工具,這兩者的關(guān)系就像pip于Python,npm于Node一樣.但是發(fā)現(xiàn)真正項目中使用composer還是比較少的, 所以這里這里寫一遍文章介紹Composer的使用,幫助那些對于Composer還是有點模糊的同學(xué).此文跟Laravel沒有任何聯(lián)系.
安裝Composer的方式就不講了, 具體安裝方式可以查看這里.
基本使用.安裝好Composer之后,只要在項目根目錄新建compsoser.json之后就可以使用composer了,這點跟npm很像.composer.json的內(nèi)容是以json格式書寫的.
包管理工具最大的作用就是幫助我們管理包的依賴關(guān)系.當你的項目中需要一個日志系統(tǒng)的時候,你又不想去實現(xiàn),想在網(wǎng)上找一找開源的日志系統(tǒng).于是你找到了一個叫 monolog/monolog的好東西.但是怎么在你的項目中使用它?這個時候就需要composer了.
在你的composer.json里面添加如下代碼:
{ "require": { "monolog/monolog": "~1.13" } }
前面說過,composer.json是以json格式書寫的.require表示當前項目依賴于哪些包.寫好之后,只要執(zhí)行composer install,那么composer就會自動為我們下載這些包.下載好之后你會在項目中看到一個vendor的目錄.
your_project_root_dir/ composer.json vendor/ ..... .....
你在composer.json中記錄的所有依賴都會被下載到這里.那么下載好之后如何使用這些包?我們都 知道在PHP中引入文件是一件很麻煩的事情,require, include, require_once, include_once都有那么點問題,使用自動加載函數(shù)spl_autoload_register吧,又得寫一大堆邏輯.但是使用composer就很簡單了,只要在你的index.php文件加上require_once __DIR__ . "/vendor/autoload.php";之后就可以使用這些第三方包了.
autoload上面我們演示了如何通過使用composer使用第三方包, 但是有時候我們項目自己本身也有很多依賴要處理,但是寫include之類總是不優(yōu)雅,這個時候我們也可以使用composer來加載我們自己寫的php代碼.讓composer來幫我們實現(xiàn)自動加載.
在composer.json有一個autoload字段就是來幫助我們實現(xiàn)自動加載的,其可以根據(jù)以下的4種定義方式來實現(xiàn)自動加載:
file
classmap
PSR-4
PSR-0
其中PSR-0和PSR-4是php編碼標準.如果不清楚這個是什么東西的話, 可執(zhí)行g(shù)oogle.由于這里PSR-0標準已經(jīng)不被推薦,所以我們下面介紹一下其他三種方式的使用.
PSR-4假設(shè)我們現(xiàn)在有如下的目錄結(jié)構(gòu):
your_project_root_dir/ app/ appTest1.php sub/ appTest2.php vendor/ composer.json
這么一來,根據(jù)PSR-4的標準, appTest1.php的命名空間應(yīng)該是App,而appTest2.php的命名空間為Appsub.
在composer.json添加如下代碼:
"autoload":{ "psr-4":{ "App//":"app/" }, }
其中autoload表明了這是為了實現(xiàn)自動加載.而psr-4說明了我們這里使用PSR-4的自動加載規(guī)范."App//":"app/"表示App這個命名空間對應(yīng)到app這個目錄下.這個時候我們執(zhí)行composer命令composer dumpautoload -o
執(zhí)行完畢之后還是在index.php加上require_once __DIR__ . "/vendor/autoload.php",之后我們就可以直接使用app目錄下的類而不用考慮自動加載的問題了, 因為composer都幫我們處理好了.
files&&classmap當我們的目錄結(jié)構(gòu)不符合PSR-4標準的時候,我們也可以使用這兩種方式來添加自動依賴.這兩種方式使用起來就相當簡單了.
"autoload":{ "files":["src/test.php"], "psr-4":{ "App//":"app/" }, "classmap":["lib/"] }
如上.files節(jié)點上添加src/test.php,那么composer就會自動為你加載這個文件,使用classmap則會為你加載lib/目錄下的所有文件.修改完autoload的內(nèi)容之后要記得執(zhí)行composer dumpautoload -o來重新生成加載文件.
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/22192.html
摘要:首先支持下黃老師的視頻網(wǎng)站轉(zhuǎn)型這篇的學(xué)習筆記也是根據(jù)他的視頻教程寫的,一共十集,講解的很簡單感興趣的同志們可以上他視頻網(wǎng)站購買視頻,網(wǎng)站地址放在文末我的博客作用自動安裝所需要的模塊,自動加載管理項目,發(fā)布到網(wǎng)上上去是默認的加載組件地址安裝下 首先支持下黃老師的視頻網(wǎng)站轉(zhuǎn)型這篇composer的學(xué)習筆記也是根據(jù)他的視頻教程寫的,一共十集,講解的很簡單感興趣的同志們可以上他視頻網(wǎng)站購買視頻...
摘要:的包管理器是,用來瀏覽并搜索查看最新發(fā)行版下載。的包管理器是下一代的,使用編寫,以格式發(fā)布。二發(fā)布時間軸三安裝與使用安裝主要是安裝和這兩個包管理器,然后通過包管理器安裝其他。 PHP社區(qū)提供了幾個管理擴展和包的工具包括Pecl、Pear、Pear2和Composer。在不了解的情況下去使用這些工具必然會出現(xiàn)困惑,所以下面就簡單介紹下這幾個管理工具。 一、簡介 下面簡要介紹 Pear、P...
摘要:框架組件化改造框架從單體應(yīng)用到組件化改造的架構(gòu)升級之路經(jīng)過一年多的開發(fā)框架功能越來越完善也越來越復(fù)雜初創(chuàng)時期的單體應(yīng)用已經(jīng)無法支撐項目的快速發(fā)展于是開發(fā)組在年前為版制定了組件化改造的重構(gòu)方案內(nèi)容速覽組件化原理包管理基礎(chǔ)知識組件化方案來 date: 2018-3-21 13:22:16title: Swoft| Swoft 框架組件化改造description: Swoft 框架從單體應(yīng)...
摘要:本文簡要回顧相關(guān)概念和用法。相比之下已是明日黃花。分別對應(yīng)的命令是根據(jù)關(guān)鍵字查找依賴包,例如查找本人發(fā)布的包。作為目前包依賴管理的最佳工具,值得每一位開發(fā)人員掌握。 轉(zhuǎn)載請注明文章出處:https://tlanyan.me/php-review... PHP回顧系列目錄 PHP基礎(chǔ) web請求 cookie web響應(yīng) session 數(shù)據(jù)庫操作 加解密 Composer是PHP...
摘要:更換源更新源使用的源通過安裝腳本安裝應(yīng)用所需要的依賴。 showImg(https://segmentfault.com/img/remote/1460000011106825); 有了第二篇《使用 Docker 搭建簡易的 Java Web 環(huán)境 (二)》,懂了如何通過單一鏡像創(chuàng)建 Docker 環(huán)境,這篇主要學(xué)習如何使用「docker-compose」。目標是:搭建 Laravel...
閱讀 2141·2023-04-25 18:49
閱讀 1848·2019-08-30 14:02
閱讀 2648·2019-08-29 17:24
閱讀 3328·2019-08-28 18:10
閱讀 2931·2019-08-28 18:03
閱讀 495·2019-08-26 12:01
閱讀 3313·2019-08-26 11:31
閱讀 1431·2019-08-26 10:29