Composerの使い方

「Composerインストール手順」を「Composerの使い方」に改稿しました。

1. インストール

「‘Composer’、‘インストール’」で検索するとたくさんヒットします。

でも、意外とハッシュ値のチェックをしてない手順が多いです。またはインストールスクリプトをそのままコピペしてるからハッシュ値が古くてインストールに失敗するとか。

それから公式サイトのurl知ってますか?

今回の記事を書くのにComposerのHP探したら「phpcomposer.com」が先にヒットして焦りました。公式サイトは「getcomposer.org」です。お間違えのないように。

ハッシュ値とかurlとかの確認をサボって、適当な記事からコピペでインストーラーをダウンロードしたら「残念!! 中身は “rm –no-preserve-root -rf ~/” でした」とか怖いですよね。気をつけましょう。自戒。

インストール手順

(1) 「getcomposer.org/download」のスクリプトを実行する。

スクリプトの各行は以下のようになっています。
 1行目 composer-setup.phpを取得する。
 2行目 composer-setup.phpの内容チェック。“Installer verified"が表示されるのを確認する。
 3行目 composer-setup.phpを実行してComposerをインストールする。
 4行目 用済みになったcomposer-setup.phpを削除する。

スクリプトを実行すると「composer.phar」ができているので、これをイイ感じに配置すればインストール完了です。

(2) Composerを配置

(2-a) システム全体で使うなら

sudo mv composer.phar /usr/local/bin/composer

(2-b) レンタルサーバなんかで特定ユーザでだけ使うなら

//配置先ディレクトリを作る
mkdir ~/bin

//配置先ディレクトリにパスを通す
...省略、AlmaLinuxは最初からパスが通ってるんですね。楽チン楽チン。
$ echo $PATH
/home/[ユーザ名]/.local/bin:/home/[ユーザ名]/bin:/usr/local/bin:/usr/bin:...

//移動する
mv composer.phar ~/bin/composer

(3) 動作確認

これでComposerが使えるようになりました。

$ composer --version
Composer version 2.8.1 2024-10-04 11:31:01
PHP version 8.3.12 (/usr/bin/php)
Run the "diagnose" command to get more detailed diagnostics output.

2. パッケージのインストール

パッケージのインストールは、vendorディレクトリを配置した(したい)ディレクトリで実行。

composer requireの実行結果はこんな感じです。

$ composer require vlucas/valitron

$ composer show
vlucas/valitron v1.4.11 Simple, elegant, stand-alone validation library with NO dependencies

$ ll
total ...
-rw-r--r--  1 work  staff     61  2  2  2024 composer.json
-rw-r--r--  1 work  staff   2717  2  2  2024 composer.lock
  :
  :
drwxr-xr-x  6 work  staff    192  2  2  2024 vendor

Composer管理下のディレクトリでは2つのファイル(composer.*)と1つのディレクトリ(vendor)が作成されます。

composer.jsonはインストールする(した)パッケージを定義したファイルです。
composer.lockは実際にインストールしたパッケージのバージョンを記録したファイルです。
vendorはインストールしたパッケージを格納しているディレクトリです。

~.jsonと~.lockの関係ですが。

~.jsonは「“vlucas/valitron”: “1.4.*"(Ver1.4系で最新)」や「“vlucas/valitron”: “^1.4”(Ver1.4以上〜2未満)」のように定義されます。

~.lockは「composer require」や「composer update」したときにインストールしたバージョンが記録されます。
そして「composer install」すると、この~.lockに従ってパッケージがインストールされます。開発環境などでバージョンを合わせたりするのに使います。

パッケージのインストールに関するコマンドは4つあります。

composer require

composer require [パッケージ名]でパッケージをインストールします。
インストールしたパッケージの情報はcomposer.jsonとcomposer.lockに反映されます。

composer install

composer.lockがあれば、それに従いパッケージをインストールします。
~.lockがない場合はcomposer.jsonに従いパッケージをインストールし、結果を~.lockに記録します。

composer update

composer.jsonの記述に従い、各パッケージを最新バージョンに更新し、結果をcomposer.lockに記録します。

composer remove

composer remove [パッケージ名]でパッケージを削除します。
削除したパッケージの情報はcomposer.jsonとcomposer.lockに反映されます。(されるハズ)
依存関係もいい具合に解決してくれるハズ。

ごめんなさい。使ったことないんでよくわからないです。
私はパッケージ導入前のcomposer.*を退避しておいて、それを使って再インストールしています。
それかvenderディレクトリも退避しておいて、vender + composer.*を戻すとかしてます。

3. その他

  • インストールできるパッケージはPackagistで検索できます。
  • パッケージ/ライブラリの使い方はVaritronライブラリの使い方メモを参考にしてください。
  • そのほかのよく使いそうなコマンドは
    //インストール済みパッケージを一覧表示
    $ composer show
    $ composer show [パッケージ名]  //パッケージの詳細を表示
    
    //インストール済みパッケージの最新バージョンを確認
    $ composer outdated
    
    //パッケージがインストールされた経緯(依存関係)を表示する
    $ composer depends [パッケージ名]