全面的MySQL優(yōu)化詳解【干貨】
來源:原創(chuàng) 時間:2017-10-23 瀏覽:0 次
Composer是一個十分盛行的PHP包依靠管理東西,現(xiàn)已替代PEAR包管理器,關(guān)于PHP開發(fā)者來說把握Composer是有必要的.
關(guān)于運用者來說Composer十分的簡略,經(jīng)過簡略的一條指令將需求的代碼包下載到vendor目錄下,然后開發(fā)者就能夠引進包并運用了.
其間的關(guān)鍵在于你項目界說的composer.json,能夠界說項目需求依靠的包(可能有多個),而依靠的包可能又依靠其他的包(這就是組件的優(yōu)點),這些都不必你煩心,Composer會主動下載你需求的全部,全部在于composer.json的界說.
?
Composer關(guān)于運用者來說是很通明,可是其背面的理念仍是需求了解一下的,其的誕生也不是偶爾的,得益于Github的快速開展,PHP言語也越來越現(xiàn)代化,顯得更巨大上了.
為了了解Composer,先大約了解下其結(jié)構(gòu):
Composer的結(jié)構(gòu)
Composer指令行東西:
這個了解就比較簡略了,經(jīng)過運用者界說的Composer.json去下載你需求的代碼,假設(shè)僅僅簡略的運用Composer,那么把握一些詳細指令就完全能夠了
Autoloading代碼加載器:
經(jīng)過Composer,開發(fā)者能夠經(jīng)過多種辦法去運用,而其間的關(guān)鍵在于PHP的命名空間概念,以及PSR-4規(guī)范的開展,Composer僅僅依據(jù)這二者開發(fā)了一個代碼主動加載器
Github:
有了Github,PHP開發(fā)人員能夠?qū)㈤_源的代碼保管在這上面,而Composer的開展源于Github,Composer本質(zhì)上就是將Github上的代碼下載到本地.
Packagist:
關(guān)于運用者來說運用的是Composer的指令行東西,那么指令行東西怎樣知道有多少包能夠被用戶運用呢,這首要就是依靠于Packagist,Packagist是Composer首要的一個包信息存儲庫,包開發(fā)者將詳細代碼保管到Github上,將包信息提交到Packagist上,這樣運用者就能夠經(jīng)過Composer去運用.
Composer依據(jù)本地界說的composer.json信息去查詢Packagist,Packagist依據(jù)Composer.json/Package.json信息解析,終究對應(yīng)到github庫房,Composer終究下載代碼的時分還要依靠于Github庫房上的Composer.json,這兒涉及到三種類型的composer.json,意義是不一樣的.
Composer.json:
這是Composer的中心,是Composer的規(guī)矩,上面也提到了三種類型的Composer.json,在運用的時分必定要注意區(qū)別,我初學(xué)的時分就總是搞亂.
Composer指令行東西
composer init
運用者能夠在自己的項目下創(chuàng)立composer.json以便界說你項意圖依靠包,也能夠經(jīng)過composer init交互式的創(chuàng)立composer.json.
composer install
應(yīng)該是最常用的指令,composer會依據(jù)本地的composer.json裝置包,將下載的包放入項目下的vendor目錄下,一起將裝置時分的包版別信息放入到composer.lock,以便確定版別.
其實在install的時分,假設(shè)發(fā)現(xiàn)composer.lock版別和現(xiàn)在vendor目錄下的代碼版別是共同的,則Composer會什么也不做,composer.lock的意圖就是讓你安心在現(xiàn)在這個版別下作業(yè),而不獲取最新版別的包.
composer update
那么怎么更新composer.lock以便獲取到最新版別的包呢?經(jīng)過這個指令即可更新最新版別的包
composer config
這個指令仍是主張了解下,大局的裝備保存在COMPOSER_HOME/config.json,非大局的裝備信息則存儲在本項目目錄下.
composer config --list -gcomposer config -g notify-on-install falsecomposer global config bin-dir --absolute
composer create-project
這個指令不常用,可是個人覺得仍是很重要的,運用一般的install指令是將項目一切的依靠包下載到本項目vendor目錄下.而經(jīng)過這個指令則是將一切的代碼及其依靠的包放到一個目錄下,相當(dāng)于履行了一個git clone指令,一般是包的開發(fā)者可能為了修正bug會運用該指令.
composer global
這是一個大局的裝置指令,它答應(yīng)你在COMPOSER_HOME目錄下履行Composer的指令,比方install,update.當(dāng)然你的COMPOSER_HOME要在$PATH環(huán)境下.