LoginSignup
2
5

【Composer】インストールから基本コマンド紹介まで

Last updated at Posted at 2024-02-19

導入

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

Homebrew/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の基本コマンドを紹介しました。

続編も執筆しましたのでよければお時間があればご覧ください。

2
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
5