composerの基本
1, composer.jsonファイルの作り方
適当なディレクトリを作って、その中で
composer init
して、composer.jsonファイルを生成する。テキストファイルなので後で修正出来るからENTER連打。
1 2 3 4 5 6 7 8 9 10 |
{ "name": "適当なベンダー名/適当なパッケージ名", "authors": [ { "name": "作者の名前", "email": "作者のメアド" } ], "require": {} } |
2, composerを使ってパッケージをインストール
これでcomposerを使って、ローカルにphpのパッケージをインストール(ダウンロード)出来るようになった。
以前に自作したhelloworldパッケージをインストールしてみる。
composer require fddcddhdd/helloworld
いきなりエラー
1 2 3 |
[InvalidArgumentException] Could not find a version of package fddcddhdd/helloworld matching your minimum-stability (stable). Require it with an explicit version constraint allowing its desired stability. |
これは、パッケージがdev(開発版)なので、stable(安定版)じゃないからインストールできないよ!というエラー。
composer.jsonを編集(“minimum-stability”: “dev”,を一行追加して開発版もOKにする)すると、問題なくインストール完了。
1 2 3 4 5 6 7 8 9 |
composer require fddcddhdd/helloworld Using version dev-master for fddcddhdd/helloworld ./composer.json has been updated Loading composer repositories with package information Updating dependencies (including require-dev) Package operations: 1 install, 0 updates, 0 removals - Installing fddcddhdd/helloworld (dev-master c64d3c7): Cloning c64d3c733a from cache Writing lock file Generating autoload files |
composer.lockファイルが新たに追加された。composer.jsonとの違いは
composer.json = インストールしたいパッケージのリスト
composer.lock = 実際にインストールしたパッケージのリスト
3, composerでパッケージのインストールするコマンド(方法)には、3種類ある
a, composer require パッケージ名 ← インストールもしてくれるし、composer.jsonに書き込んでもくれる
b, 自分で、composer.jsonのrequireにパッケージ名を追加。その後に、composer updateでインストール(composer.jsonに書かれているパッケージが全てupdateされる)
c, composer install パッケージ名 ← インストールはしてくれるけど、composer.jsonには何もしない(composer.lockには書き込まれる)