rukurxの日記

自分の日々の作業や調べたことのメモ

Composer使ったのでメモ

Composerとは

Composerはライブラリの依存関係を管理してくれるツールです。 ライブラリAを使おうとしたら、内部的にライブラリBやCを使っていることがあります。ライブラリAを使うために自分でBやCをインストールしたりするのは手間がかかります。

getcomposer.org

Composerを使ってライブラリAをインストールすると、いい感じに依存しているライブラリBとCもインストールしてくれます。

# パッケージAをインストールすると、依存するパッケージB, Cもインストールしてくれる
$ composer require パッケージA

ただし、依存するライブラリBとCがcomposerに対応している必要があります。

Composerをインストールする

公式サイトのダウンロードページからダウンロードする。 getcomposer.org

Composerでプロジェクトを作成する

$ composer init

設定を色々と聞かれた後に composer.json ファイルが作成される。 composer.jsonにはライブラリの依存関係が記載されている。 Composer.jsonがあるディレクトリで以下コマンドを実行すると、依存しているライブラリをインストールしてくれます。

$ composer install

プロジェクトの作成はテンプレートを使うこともできる。

# laravelの場合
$ composer create-project --prefer-dist laravel/laravel PROJECT_NAME

パッケージをインストールする

$ composer require パッケージ名:タグ
例)
$ composer require package:dev-master

パッケージの情報はcomposer.jsonに記載され、インストールしたバージョン等の情報はcomposer.lockに記載される。 composer.lockファイルはComposerでライブラリをインストールする際に作成される。 composer.jsonに記載されている、インストールしたパッケージのバージョンなどの情報が保存されている。 composer.lockを共有することで、他の人があとでcomposerを使ってインストールすると同じバージョンのライブラリをインストールしてくれる。

パッケージを削除する

$ composer remove パッケージ名

composer.jsonとcomposer.lockからもパッケージ名が削除される。

パッケージを全て最新化する

$ composer update

パッケージを新しくしたい時に実行する。composer.lockの内容を無視して、composer.jsonにあるパッケージを最新の状態でインストールして、composer.lockも更新される。 composer.jsonに記載されているパッケージが全て最新になる。

特定のパッケージだけ最新化する

$ composer require パッケージ名

気軽にupdateするとcomposer.jsonに記載されている全てのパッケージが更新されてしまうので、パッケージ名を指定して更新する。 パッケージをインストールするときと同じ。

オートローダを作成・更新する

$ composer dump-autoload

autoload.phpが作成・更新される。

参考

qiita.com