0%

Composer 筆記

整理一般常用:
composer self-update 更新自己
composer global update 更新全域套件
composer installcomposer update

一般 Laravel 安裝:

// 先安裝相依套件
$ composer install --no-scripts
// 產 .env、APP_KEY 並最佳化應 程式
$ composer run-script post-root-package-install
$ composer run-script post-install-cmd
$ composer run-script post-create-project-cmd

尋找套件:

https://packagist.org/
http://packalyst.com

查詢所有指令:

composer composer list

有問題:

composer help install composer install -h

列出已安裝的套件:

composer show -i

更新:

composer self-update composer selfupdate
composer global update

整個流程:

composer init 產生 composer.json
版本號: http://semver.org/

更動composer.json後用composer validate檢查語法
或Packagist Semver Checker: https://semver.mwl.be/

composer install 會先檢查 composer.lock 是否存在
不存在: composer update
存在: 套件下載至 /vendor
composer update 會檢查 composer.json 安裝完更新 composer.lock

使用 Composer 自動載入:程式最頂端加上一行,引入 Composer 的 autoload.php 即可:
require __DIR__.'/vendor/autoload.php';

Composer 在解決完套件相依性後,會將最終決定安裝的版本號寫入 composer.lock 檔內
務必把 composer.lock 檔與 composer.json 檔一同放進git,其他開發者拿到 lock 檔後,只要用 composer install 就可以安裝與自己一模一樣的套件版本,而不會有套件衝突或不一致的情況

只要專案內已經有composer.lock檔、而又不需要更新/安裝套件時,就是使用 composer install
只有在安裝新套件、需要更新套件版本時,才需要使用 composer update 指令。這通常都是專案核心
開發/管理者才需要做的動作

global 套件;


安裝 Packages 範例:

全:https://packagist.org/
Laravel:http://packalyst.com/

"guidovanbiemen/laravel‐whoops": "^1.0"
整合 whoops 錯誤訊息處理套件至 Laravel 5.1
"barryvdh/laravel-debugbar": "^2.0"
在 Laravel 開發過程中提供除錯訊息的功能列

composer.json
1
2
3
4
5
6
7
"require":
{
"php": ">=5.5.9",
"laravel/framework": "5.1.*",
"guidovanbiemen/laravel-whoops": "^1.0",
"barryvdh/laravel-debugbar": "^2.0"
},

composer validate
composer update

config/app.php
1
2
3
4
5
6
7
8
9
'providers' => [
'Gvb\Whoops\ServiceProvider',
Barryvdh\Debugbar\ServiceProvider::class,
//'Barryvdh\Debugbar\ServiceProvider',
],
'aliases' => [
'Debugbar' => Barryvdh\Debugbar\Facade::class,
//'Debugbar' => 'Barryvdh\Debugbar\Facade',
],

驗證安裝結果
guidovanbiemen/laravel-whoops
程式錯誤時,會出現 whoops 的 stack trace 畫面,但若是 HTTP 相關的錯誤 (404) 則不會處理
barryvdh/laravel-debugbar
若 .env 檔內的 APP_DEBUG 為 true 時,網頁下方會出現除錯工具列

開發時才想用的套件

放在require-dev

app/Providers/AppServiceProvider.php
1
2
3
4
5
6
public function register()
{
if ($this‐>app‐>environment()=='local'){
$this‐>app‐>register('/*Provider*/');
}
}

Laravel 上線前

composer install --no-dev 記得加‐-no‐dev

env
1
2
APP_ENV=production
APP_DEBUG=false