摘要:一個(gè)聰明的指揮家。是個(gè)很貼心的家伙。和的目的差不多。上面原因不是全部,而且謹(jǐn)慎守規(guī)矩渠道限制也未必是壞事,但是它的確影響了的發(fā)展,而更加具有冒險(xiǎn)精神更加包容和靈活。來(lái)了年,就是發(fā)布年后的一天,及提出工具并發(fā)布第一個(gè)版本。如果是和會(huì)簡(jiǎn)單的多。
明日北哥 sf社區(qū)直播 composer課程,感興趣的記得來(lái)看哦 https://segmentfault.com/l/15...一個(gè)聰明的指揮家。
邏輯是不復(fù)雜的,這貨就是幫我們管理擴(kuò)展及其依賴關(guān)系。
比如我在開發(fā)一個(gè)php網(wǎng)站,突然需要二維碼生成功能,自己寫太麻煩,這個(gè)時(shí)候我可以去composer的擴(kuò)展列表里看一看,如果有直接下載下來(lái)用就可以了,當(dāng)然可能這個(gè)擴(kuò)展還需要另外一個(gè)擴(kuò)展或庫(kù)。
而我們不用擔(dān)心這個(gè),composer能幫我們下載二維碼生成擴(kuò)展及它所需要的各種庫(kù)直至正常運(yùn)行。
這就是管理擴(kuò)展及其依賴關(guān)系。Composer是個(gè)很貼心的家伙。
老大哥的接班人在Composer誕生約10年前,就是2000年的PHP開發(fā)者會(huì)議上有個(gè)叫Stig S. Bakken的人提出了一個(gè)想法,其目的是為PHP社區(qū)提供可以重復(fù)使用的庫(kù),并叫它為Pear。我想很多人聽過(guò)或用過(guò)這貨。
Composer和Pear的目的差不多。
一個(gè)疑問(wèn)就是Pear比Composer誕生早了10年,但是為何它英雄敗北了那?
總結(jié)幾點(diǎn)不同吧
Pear必須全局安裝,而Composer可以全局和局部安裝,Composer具有更好的安裝渠道。
Pear所有提交的代碼必須經(jīng)過(guò)Pear-review,這也注定了Pear上擴(kuò)展包的版本更替會(huì)慢的很,而Composer沒(méi)有這個(gè)限制,你能跟上開發(fā)者的版本更替。
結(jié)構(gòu)限制,Pear相對(duì)嚴(yán)格,而Composer靈活的多,你可以在項(xiàng)目的任何時(shí)期引入composer擴(kuò)展包,任何一個(gè)文件夾(默認(rèn)為vendor)。
PHP高級(jí)屬性的不斷出現(xiàn)也是推動(dòng)Composer更快前進(jìn)的一個(gè)原因。
上面原因不是全部,而且謹(jǐn)慎、守規(guī)矩、渠道限制也未必是壞事,但是它的確影響了Pear的發(fā)展,而Composer更加具有冒險(xiǎn)精神、更加包容和靈活。
對(duì)于e文好的可以看下這篇文章,The rise of Composer and the fall of PEAR,讓Pear安靜的死去吧。
Composer來(lái)了2012年,就是Pear發(fā)布12年后的一天,Nils Adermann及Jordi Boggiano提出Composer工具并發(fā)布第一個(gè)版本。
這一天是2012年3月1日,當(dāng)然在中國(guó)這個(gè)日期也很重要 - 【小學(xué)生開學(xué)】。
Composer的使命就是幫你為項(xiàng)目自動(dòng)安裝所依賴的開發(fā)包,很多理念都借鑒自 npm 和 Bundler, 包含了一個(gè)依賴解析器,用來(lái)處理開發(fā)包之間復(fù)雜的依賴關(guān)系;另外,它還包含了下載器、安裝器等有趣的東西。
這個(gè)就是Composer創(chuàng)始人之一 Nils Adermann的推特,竟然美國(guó)前總統(tǒng)奧巴馬也關(guān)注了它,趕緊看看你的微博啥的。
Composer就這樣一路前行,有幾個(gè)網(wǎng)站你要知道
官網(wǎng) https://getcomposer.org
擴(kuò)展列表站 https://packagist.org/
Composer 就這樣來(lái)了
安裝ComposerComposer的運(yùn)行是有要求的,你的機(jī)器上必須有PHP環(huán)境并且版本不能低于PHP5.3.2,考慮到多數(shù)伙伴都是Win上開發(fā),我們就以這個(gè)為例。
安裝程序安裝這個(gè)很方便,不過(guò)我沒(méi)太用過(guò),Composer提供了一個(gè)安裝程序( https://getcomposer.org/Compo... ),好處是它將安裝最新版本的 Composer ,并設(shè)置好系統(tǒng)的環(huán)境變量,因此你可以在任何目錄下直接使用 composer 命令。
手動(dòng)安裝按照官方文檔來(lái)是最靠譜的
C:Usersusername>cd C:in C:in>php -r "readfile("https://getcomposer.org/installer");" | php
我們來(lái)說(shuō)明下官方給的代碼,這是一個(gè)PHP命令行模式。
-r 表示可以在命令行內(nèi)運(yùn)行單行 PHP 代碼,不需要PHP的開始和結(jié)束符
readfile好理解,該函數(shù)讀入一個(gè)文件并寫入到輸出緩沖。
| php 用php執(zhí)行剛剛readfile讀到緩沖區(qū)的文件。
就是說(shuō)你可以先在瀏覽器 https://getcomposer.org/insta... 下載下來(lái)installer,然后執(zhí)行下面代碼,結(jié)果是一樣的
php installer
讓我們開始下載
要注意,上面命令需要你的php打開php_openssl支持。
上面是一種方法,還有你可以通過(guò)curl獲取遠(yuǎn)程的文件,如下代碼
curl -sS https://getcomposer.org/installer | php
和上面的思路一樣,下載installer后用php對(duì)其執(zhí)行進(jìn)行繼續(xù)的工作。
現(xiàn)在通過(guò)上面的行為,我將composer.phar下載到我的項(xiàng)目中(局部)。
composer.phar使用 composer.phar 我們就可以進(jìn)行composer包的安裝和管理了,composer.phar其實(shí)是一個(gè)pear包,什么意思?它是一個(gè)php的包,看下結(jié)構(gòu)。
我們可以通過(guò)它做事情了,比如 -V獲得composer當(dāng)前版本。
php composer.phar -V
不止這些命令,我們看看(輸入小v,-v)
php composer.phar -v
你會(huì)看到很多很多命令,太多我就不截圖了,后面我們會(huì)都說(shuō)明到,比如
about
archive
config
global
home
install
update
require
search
self-update
show
.......
這些命令讓我們和composer服務(wù)器建立了聯(lián)系。
全局安裝很高興現(xiàn)在我們可以使用它了,但是似乎每次輸入 php composer.phar 老麻煩,接下來(lái)我們簡(jiǎn)化下工作。
首先找到你的php安裝目錄(就是php.exe所在的目錄,我們假設(shè)為D:PHP)
把剛下載的composer.phar弄到上面目錄D:PHP里
在D:PHP新建一個(gè)名為composer.bat的文件,內(nèi)容為 @php "%~dp0composer.phar" %*
添加php環(huán)境變量。右鍵我的電腦-屬性-高級(jí)系統(tǒng)設(shè)置-環(huán)境變量。找到“系統(tǒng)變量”中名為Path,雙擊編輯,在最后加入分號(hào)和php目錄位置,如;D:PHP
最后一條是讓命令行直接寫php可以生效,這樣上面的composer.bat才可以。如果是linux和mac會(huì)簡(jiǎn)單的多。
總結(jié)到這里composer就到你的機(jī)器上了,正常來(lái)說(shuō)我們可以講那些高大上的參數(shù)了,不過(guò)在安裝過(guò)程中可能遇到很多問(wèn)題,這些問(wèn)題可能和網(wǎng)絡(luò)相關(guān),可能和服務(wù)器相關(guān),下一篇我們先匯總下,集中填坑。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/25632.html
摘要:但這并不代表播客對(duì)于學(xué)習(xí)技術(shù)沒(méi)有好處。這個(gè)播客最新一期是月日更新的,是第期。是這三個(gè)技術(shù)播客中開播最晚的,去年月份才發(fā)布第一期。它被評(píng)為上最好的播客應(yīng)用。 學(xué)技術(shù)的朋友一般都會(huì)關(guān)注不少技術(shù)博客(blog),但是關(guān)注技術(shù)播客(podcast)的人估計(jì)不會(huì)太多。這里一方面也是由于相關(guān)的播客數(shù)量,尤其是中文播客數(shù)量較少導(dǎo)致的。但這并不代表播客對(duì)于學(xué)習(xí)技術(shù)沒(méi)有好處。 編程派認(rèn)為,好的播客節(jié)目能...
摘要:服務(wù)通過(guò)匿名函數(shù)定義,返回一個(gè)對(duì)象的實(shí)例定義一些服務(wù)請(qǐng)注意,匿名函數(shù)可以訪問(wèn)當(dāng)前容器實(shí)例,從而允許引用其他服務(wù)或參數(shù)。如果要為所有調(diào)用返回不同的實(shí)例,請(qǐng)使用方法包裝你的匿名函數(shù)。 鏈接 官網(wǎng) WebSite GitHub - Pimple 這是 Pimple 3.x 的文檔。如果你正在使用 Pimple 1.x ,請(qǐng)查看 Pimple 1.x 文檔。閱讀 Pimple 1.x ...
摘要:系統(tǒng)樹圖地址安裝配置首先往應(yīng)用中注冊(cè),打開文件,在中添加一項(xiàng)然后發(fā)布拓展包的配置文件,使用如下命令此時(shí)目錄下會(huì)生成配置文件數(shù)據(jù)導(dǎo)入兩表三個(gè)自定義函數(shù)結(jié)構(gòu)以父節(jié)點(diǎn)為基準(zhǔn)的鏈?zhǔn)讲樵冊(cè)鰟h容易查詢不便結(jié)構(gòu)以左右值包容形式增刪不便查詢?nèi)菀讏D片描述方法 PHP系統(tǒng)樹圖 github地址 dendrogram Laravel PHP ...
摘要:本文內(nèi)容節(jié)選自由主辦的第七屆,分享的實(shí)錄。據(jù)美國(guó)紐約時(shí)報(bào)報(bào)道,人工智能的測(cè)試會(huì)根據(jù)膚色種族,出現(xiàn)不同的錯(cuò)誤率。微軟在美國(guó)工時(shí)比較長(zhǎng),而在歐洲工作時(shí)間有嚴(yán)格的要求,我們需要花費(fèi)時(shí)間磨合并找到共同的時(shí)間。 showImg(https://segmentfault.com/img/bVbm2f7?w=1080&h=720); 本文內(nèi)容節(jié)選自由msup主辦的第七屆TOP100summit,Mi...
閱讀 1700·2021-09-23 11:31
閱讀 1007·2021-09-23 11:22
閱讀 1450·2021-09-22 15:41
閱讀 4180·2021-09-03 10:28
閱讀 2975·2019-08-30 15:55
閱讀 3601·2019-08-30 15:55
閱讀 2049·2019-08-30 15:44
閱讀 2781·2019-08-30 13:50