php中各類別元件庫(kù)中,最為主要的為兩個(gè)?Packagist?PEAR
其中,Packagist和Composer健米合作,利用Composer可以安裝packagist裡面的元件,並且完成自動(dòng)載入。?
利用composer將元件下載到本地之後,會(huì)產(chǎn)生composer.json和composer.lock兩個(gè)文件,composer.lock文件會(huì)列出專案所有的php元件,以及元件的具體版本號(hào),這樣鎖定了版本,讓專案只能使用具體版本的PHP元件。這樣的好處,composer會(huì)下載這個(gè)文件中列出的具體版本,而不管Packagist中可用的最新版本是多少,你應(yīng)該把composer.lock文件納入版本控制,這樣讓團(tuán)隊(duì)成員使用的PHP版本和你一樣,如果本機(jī)開(kāi)發(fā)和伺服器使用php元件版本相同,可以盡量減少因元件版本不同而導(dǎo)致的bug。
composer的自動(dòng)加載,其實(shí)就是名為autoload.php的文件,保存在vendor目錄中,Composer下載各個(gè)PHP組件時(shí),會(huì)檢查每個(gè)組件的composer.json文件,確定如何加載該組件,得到這個(gè)信息後, Composer會(huì)在本機(jī)為該元件建立一個(gè)和服PSR標(biāo)準(zhǔn)的自動(dòng)載入。這樣我們就可以實(shí)例化專案中的任何PHP元件。這些組件需要自動(dòng)載入。