您好,登錄后才能下訂單哦!
這篇文章主要介紹Composer的示例分析,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
具體的每個(gè)配置項(xiàng)細(xì)節(jié)請參考 Composer 官網(wǎng)
ID | 配置項(xiàng) | 說明 |
---|---|---|
1 | name | 包的名稱,它包括供應(yīng)商名稱和項(xiàng)目名稱,使用 / 分隔。 |
2 | description | 包描述 |
3 | version | 版本 |
4 | type | 安裝類型 |
5 | keywords | 關(guān)鍵字 |
6 | homepage | 項(xiàng)目主頁 |
7 | time | 版本發(fā)布時(shí)間 |
8 | license | 許可協(xié)議 |
9 | authors | 作者 |
10 | support | 支持,獲取項(xiàng)目支持的向相關(guān)信息對象。 |
11 | require | 自動(dòng)加載的包 |
12 | require-dev | 在DEV下自動(dòng)加載的包 |
13 | conflict | 此列表中的包與當(dāng)前包的這個(gè)版本沖突。它們將不允許同時(shí)被安裝 |
14 | suggest | 建議安裝的包,它們增強(qiáng)或能夠與當(dāng)前包良好的工作。這些只是信息,并顯示在依賴包安裝完成之后,給你的用戶一個(gè)建議,他們可以添加更多的包。 |
15 | autoload | 自動(dòng)加載,分別有四種加載機(jī)制 psr-4 psr-0 classmap file |
16 | include-path | 保留傳統(tǒng),不建議使用 |
17 | target-dir | 定義當(dāng)前包安裝的目標(biāo)文件夾 |
18 | minimum-stability | 安裝包的時(shí)候通過穩(wěn)定性過濾包的默認(rèn)行為, dev alpha beta RC stable 可選 |
19 | prefer-stable | 安裝包的時(shí)候優(yōu)先使用更穩(wěn)定的包版本, "prefer-stable": true |
20 | repositories | 使用自定義的包資源庫。默認(rèn)情況下 composer 只使用 packagist 作為包的資源庫。通過指定資源庫,你可以從其他地方獲取資源包。 |
21 | config | 配置參數(shù),eg:process-timeout vendor-dir |
22 | scripts | Composer 允許你在安裝過程中的各個(gè)階段掛接腳本。 |
23 | extra | 任意的,供 scripts 使用的額外數(shù)據(jù)。 |
24 | bin | 該屬性用于標(biāo)注一組應(yīng)被視為二進(jìn)制腳本的文件,他們會(huì)被軟鏈接到(config 對象中的)bin-dir 屬性所標(biāo)注的目錄,以供其他依賴包調(diào)用。 |
25 | archive | 這些選項(xiàng)在創(chuàng)建包存檔時(shí)使用。 |
require
標(biāo)識(shí)符 | 含義 | 實(shí)例 |
---|---|---|
^ | 安裝的最新版本 | "barryvdh/laravel-cors": "^0.10.0" 安裝laravel-cors最新版本 |
~ | 標(biāo)識(shí)安裝的最后一位區(qū)間版本 | "barryvdh/laravel-cors": "~0.10.0", 安裝laravel-cors 0.10.0-0.10.9 |
require-dev
composer install
會(huì)安裝require-dev
中的包,require
中的包
composer install --no-dev
只會(huì)安裝require
中的包
scripts
"scripts": { "post-root-package-install": [ "@php -r \"file_exists('.env') || copy('.env.example', '.env');\"" ], "post-create-project-cmd": [ "@php artisan key:generate" ], "post-autoload-dump": [ "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump", "@php artisan package:discover" ] }
scripts
是自定義執(zhí)行SHELL命令,如上代碼中,執(zhí)行post-root-package-install
執(zhí)行復(fù)制文件。
autoload
PHP 自動(dòng)加載文件,分別有四種加載機(jī)制
psr-4
psr-0
classmap
file
修改完 autoload 的內(nèi)容之后要記得執(zhí)行
composer dump-autoload
來重新生成加載文件
prs-4
該目錄下的 PHP 文件 采用 PSR-4 自動(dòng)加載標(biāo)準(zhǔn)
Composer會(huì)將該結(jié)構(gòu)下的文件映射關(guān)系寫入 autoload_classmap.php
"autoload": { "psr-4": { "App\\": "app/" } }
prs-0
該目錄下的 PHP 文件 采用 PSR-0 自動(dòng)加載標(biāo)準(zhǔn)
Composer會(huì)將該結(jié)構(gòu)下的文件映射關(guān)系寫入 autoload_namespaces.php
"autoload": { "psr-4": { "Cx\\": "prs0/" } }
classmap
Composer 加載 lib/
目錄下的所有文件,放入到 autoload_classmap.php
{ "classmap":["lib/"] }
file
Composer 加載 src/test.php
該文件,放入到 autoload_files.php
{ "files":["src/test.php"] }
詳細(xì)命名請參考 Composer 命令行
composer install
先安裝composer.lock
文件中packages
中的版本;即使composer.json
與 composer.lock
中版本不一致
安裝流程圖
composer update
先安裝composer.json
的版本,并且更新composer.lock
中 packages
中的版本
安裝流程圖
composer dump-autoload
CMD | 說明 | 應(yīng)用場景 |
---|---|---|
composer dump-autoload | 打印自動(dòng)加載索引,就是將 autoload 中的各項(xiàng)加載到本該指定的目錄。 | 開發(fā)環(huán)境 你更新了 autoload 中的各項(xiàng), |
composer dump-autoload -o | 轉(zhuǎn)換 PSR-0/4 autoloading 到 classmap 獲得更快的載入速度 | 適用于生產(chǎn)環(huán)境 |
composer dump-autoload -o --no-dev | 禁用 autoload-dev 規(guī)則 | 適用于生產(chǎn)環(huán)境 |
composer dump-autoload --classmap-authoritative | 只加載 ClassMap中的文件,必到磁盤文件系統(tǒng)進(jìn)行任何檢查 | 適用于生產(chǎn)環(huán)境 |
因此生產(chǎn)請使用
composer dump-autoload -o --no-dev --classmap-authoritative
以上是“Composer的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。