導入
PHPでWebアプリケーションを開発する際、純粋なPHPのみで実装するケースってほぼほぼないですよね。
なにかしらのライブラリを導入したり、フレームワーク・CMSを利用するかと思います。
そんな時に、使用するパッケージ・ライブラリのバージョン管理を行ってくれるのがcomposerです。
今回の記事ではこれさえ知っとけばどうにかなるんじゃないかというcomposerの基本コマンドをご紹介します。
composer 本体のインストール
手順は公式ドキュメントに書いている通りで恐らくスムーズ行きます。
(M2・Macでは問題ありませんでした。)
以下を順番に実行してください。
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === 'edb40769019ccf227279e3bdd1f5b2e9950eb000c3233ee85148944e555d97be3ea4f40c3c2fe73b22f875385f6a5155') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
Globalでcomposerを利用するために、こちらも実行しましょう。
sudo mv composer.phar /usr/local/bin/composer
Homebrewで一括管理
MacユーザーはHomebrewで管理してもいいですね。(筆者は試してません)
brew install composer
コマンド集
それではコマンドの紹介です。
と、その前にセットアップをしましょう。
0. セットアップ
# 1. プロジェクトディレクトリを作成します。
mkdir composer-sandbox
# 2. プロジェクトルートに移動
cd composer-sandbox
セットアップは完了です。
1. composer require
とりあえずなにか入れてみましょうか。Guzzleとかがいいんですかね?
composer require "guzzlehttp/guzzle: 6.5.8"
恐らく、実行後に以下の「ファイル/ディレクトリ」が作成(インストール)されたのではないでしょうか?
├── composer.json
├── composer.lock
└── vendor/
Packageのインストール成功ですね。
2. composer install
GPT的には、「composer.json に定義された依存関係をもとにパッケージをインストールします。」とのことです。
行けそうですか?とりあえずやってみましょう。
先ほど作成したcomposer.json
を編集します。
{
"require": {
- "guzzlehttp/guzzle": "^6.5.8"
+ "guzzlehttp/guzzle": "^6.5.8",
+ "symfony/yaml": "^7.0"
}
}
こんな感じですかね。
準備はOKです。
それでは、実行してください。
rm composer.lock
composer install
少し細かい議論ですが、
※ 直接composer.json
ファイルを調整することについては実際はあまりしないです。
composer.lock
ファイルもgit管理することがBetterです。
- 「環境間でのpackage管理が楽になる。」
- 「大規模開発や、長期プロジェクトでのアップデートにも対応しやすい。」
- 「
rm composer.lock
は不要。」
と、思っています。
「違うよ。」があればコメントください。
3. composer update
GPT的には、「パッケージのバージョンを更新します。composer.json のバージョン指定に従い、可能な限り最新のバージョンに更新されます。」とのことです。
4. composer remove
インストール済みのPackageの削除を行います。
composer remove "symfony/yaml"
以下のようにcomposer.json
が書き換わったら成功ですね。
{
"require": {
+ "guzzlehttp/guzzle": "^6.5.8"
- "guzzlehttp/guzzle": "^6.5.8",
- "symfony/yaml": "^7.0"
}
}
参考
まとめ
今回はcomposerの基本コマンドを紹介しました。
続編も執筆しましたのでよければお時間があればご覧ください。