こんにちは。
情報サイトとか、ノートとか、あるトピックに関連する情報が1つにまとまっていると嬉しいmuramatsuです。
今回はPHPのフレームワークで何かと必要になってくるComposerについての解説です。
Composerって何?
どうして必要なの?
というところから
インストールに必要な環境
インストール方法
そして
覚えておくべき知識
使うメリット
逆引きコマンド一覧
をまとめて解説していきます!
Composerとは
Composer(コンポーザー)というと、音楽をやっている方はよく聞くかと思いますが、英語で作曲家や構成者、作成者などの意味があります。
PHPではパッケージ依存管理ツールのことで、Composerはそのツールの名前。
Composerはコマンド*1で操作ができるので、インストールやアップデートなど全てコマンドプロンプトやターミナル上で行います。
PHPを使う際に、たくさんの処理・機能が入ったライブラリ*2(パッケージ)を使うことがあり、Composerはこれをまとめて管理しているのです。
便利な機能は複雑な処理になっていることが多く、関数処理を再利用(依存)していたり、再利用している機能に新しく処理を追加してパッケージ*3になっていたりします。
このライブラリを使うことによって、シンプルなコードが書けたり、複雑な処理をとっても簡単に使うことができますが、使うためにはライブラリ自体を持ってこないといけません。
*1 コマンドとは、ハードウェアやソフトウェアを実行させるための指示や命令のこと。
命令文を書くコマンドプロンプト(Windows)・ターミナル(Mac)・コンソール(Linux)上で指定のコマンドを入力して命令をして実行させます。
*2 ライブラリとは、便利な機能の関数やクラス・定数のことで、プログラムの中からいつでも呼び出して利用できるようになっています。
*3 パッケージとは、まとまったライブラリのこと。
ライブラリは他のライブラリに依存しており、その関連しているライブラリがまとまったものを言います。
なぜパッケージ依存管理ツールなのかは、
- Composerだけでは意味がなく、Composerを使うソフトウェアが必要になるということです。
また、PHPアプリケーション開発環境の際に使用するいくつかのソフトウェアはComposerを使用していたりもします。 - そしてそのプロジェクトはたくさんのライブラリに依存していることになります。
- さらにComposerがまとめているライブラリ(パッケージ)は、他のライブラリに依存している
ということが挙げられます。
Composerをインストール
必要な環境
Composerをダウンロードするのには、
- パソコンは、WindowsでもMacでも、Linuxでも問題ありません。
※ここでは主にWindows環境での開設をしてきます。
- 前もってPHP 5.3.2以上の環境がインストールされていることが必要になります。
PHPのダウンロードはPHP公式サイト(php.net)のPHP Downloadsからインストールができます。
PHP.netのdownloadsのページ:http://php.net/downloads.php
最新のバージョンで、ご自身のパソコン環境にあったものをインストールしましょう。
PHPインストール手順:http://php.net/manual/ja/sam.installation.php
またはXAMPP(ザンプ)というPHPのプログラムを実行してくれるソフトウェアからPHPを一緒にダウンロードすることができます。
既にXAMPPをインストールしている方は、PHPをインストールしている可能性があるので確認をしてみましょう。
XAMPPからのPHPダウンロード方法は下記の記事をご参照ください。
インストール
Windowsの場合のインストール方法を見ていきましょう。
まずはComposerの公式サイトからインストーラをダウンロードします。
Composer公式サイト:https://getcomposer.org/
「Download」をクリックすると、下記のダウンロードページへ行きます。
ダウンロードのページ:https://getcomposer.org/download/
Windows InstallerのところにあるComposer-Setup.exeをクリックするとダウンロードされます。
保存されたフォルダからダウンロードした「Composer-Setup.exe」をダブルクリックして起動させます。
ダブルクリック後、コンピューターが「このアプリがデバイスに変更を加えることを許可しますか?」と聞いてくるかもしれません。
その場合は「はい」を選択して、進めてください。
インストールするための画面が表示されます。
何もせずに「Next」をクリックします。
※「Developer mode」はチェックするとアンインストーラが含まれなくなるので、チェックはしなくても問題ありません。
次にインストールされているPHPの場所がどこか(=PHPのパス)を指定します。
通常は自動で入っています。
もし入っていない場合は「Browse…」をクリックして「php.exe」の場所を指定してください。
※ここではZAMPPからPHPを一緒にダウンロードしたため、ZAMPPの中にphp.exeが入っています。
「Next」をクリック。
「Next」をクリック後、もし「PHP Configuration Error」が出た場合:
「Your php.ini file is missing. Setup can create one for you.」
「php.ini」が存在していないようです。
「create a php.ini file」にチェックをして「Next」をクリック。
「Your php.ini file needs updating. Setup can do this for you.」
php.iniとはPHPプログラム環境を設定するファイルのことで、PHPの設定で必要な要件が不足しているようです。
「Create a php,ini file」にチェックを入れて「Next」をクリック。
次にプロキシの設定をします。
Proxy(プロキシ)は英語で「代理」という意味があり、IT用語ではパソコンからインターネットを接続する際に、安全な通信で高速アクセスを確保してくれる中間のサーバのことです。
ここでは特に何も入力しなくて構いません。「Next」をクリック。
社内プロジェクトなどで使用している場合は、入力してください。
インストールを行います。
「Install」をクリック。
インストールしています。しばし待ちましょう。
「Next」をクリック。
インストール完了です。
「Finish」をクリックしてウィンドウを閉じます。
しっかりとインストールされているか確認をしてみましょう。
「Winddows」キー+「R」キーを押して、出てきた「ファイル名を指定して実行」のウィンドウで「名前」のところに「cmd」と入力してください。
またはコンピュータ画面左下の「ここに入力して検索」に「コマンド」と入力して出てきた「コマンドプロンプト」をクリックしてください。
「OK」をクリックしすると下画像のコマンドプロンプトが開きます。
カーソルがあるところに「composer」と入力して「Enter」キーを押してください。
下のように、Composerのバージョンやインストールした日時などが表示されれば完了です。
Composerを使うための覚えておくべき知識
Composerを使用するのにあたり、コマンドを覚えておきましょう。
中級の方がメインになりますが、初心者の方でもわかりやすく解説していきます。
Composerで使うコマンド
init
php composer.phar init
依存しているパッケージの処理を定義しておくファイル、composer.jsonを作成。
composer.jsonは自作のパッケージやinitからインストールしたパッケージでも可能です。
下記のオプションをつけることが可能。
※オプションをつけるときはinitの後に半角スペースを空けて入力します。
//例 php composer.phar init -name
-name | パッケージ名 |
-description | パッケージ詳細 |
-author | パッケージの作者 |
-homepage | パッケージの種類 |
-require | パッケージのリンク(ホームページ) |
require-dev | 指定したパッケージインストールを有効にする |
-s または -stability | minimum-stabilityの値設定 |
-I または -license | パッケージライセンス |
-repository | 1つまたは1つ以上のカスタムレポジトリを供給する |
require
php composer.phar require
新しいパッケージをcomposer.jsonに追加・更新する。
オプションで指定をしない限り、対話形式で更新を行います。
対話形式にしたくない場合
php composer.phar require vendor/package:2.* vendor/package2:dev-master
下記のオプションをつけることが可能。
※オプションをつけるときはrequireの後に半角スペースを空けて入力します。
//例 php composer.phar require -prefer-source
-prefer-source | 公開しているsourceからパッケージをインストール |
-prefer-dist | 公開しているdistからパッケージをインストール |
-dev | require-devで指定されたパッケージインストールを有効にする |
-no-update | 依存関係のパッケージの自動アップデートを無効にする |
-no-progress | 進行状況を表示しない |
など
install
php composer.phar install
composer.jsonに指定したパッケージをインストールする。
インストール先はvendorというディレクトリ(フォルダ)内に保存されます。
※バージョンアップデートする際にも必要です。
下記のオプションをつけることが可能。
※オプションをつけるときはinstallの後に半角スペースを空けて入力します。
//例 php composer.phar install -prefer-dist
-prefer-source | 公開しているsourceからパッケージをインストール |
-prefer-dist | 公開しているdistからパッケージをインストール |
-dry-run | インストールする前に趣味レーションして何が起こるか教えてくれる |
-dev | require-devで指定されたパッケージインストールを 有効にする |
-no-dev | require-devで指定されたパッケージインストールをスキップ |
-no-scripts | composer.jsonで指定されたスクリプトの実行をスキップ |
-no-plugins | プラグインを無効にする |
-no-progress | ダウンロード進行状況を表示しない |
-o または -optimize-autoloader | PSR-0ルールのオートローディングをクラスマップに変換して、オートローダーを最適化する |
directory(ディレクトリ)とは、たくさんのファイルを分類して整理し保管しておく場所のことです。
※フォルダと似た意味を持っています。
update
php composer.phar update
最新のバージョンのパッケージ更新と、composer.lockの更新
composer.lockは、パッケージをインストールするとできるファイルで、パッケージのバージョン情報を持っています。
特定のパッケージのみをアップデート
php composer.phar update ベンダー名/プロジェクト名(パッケージ名) //(例) php composer.phar update monolog/monolog
プロジェクト名を指定しない、ワイルドカードでベンダー名だけを特定する
php composer.phar update ベンダー名/* //(例) php composer.phar update vendor/*
これをすることにより、ベンダー内全てのパッケージがアップデートされます。
Composer自体をアップデート
php composer.phar self-update
Installと同じオプションに加え、下記オプションをつけることが可能。
//例 php composer.phar update -with-dependencies
-with-dependencies | 指定したパッケージから依存しているパッケージまで全てをインストール |
など
search
php composer.phar search 検索したいワード // (例) php composer.phar search monolog
packagistにあるパッケージレポジトリからパッケージの検索する。
下記のオプションをつけることが可能
//例 php composer.phar search -N
-N または -only-name | 名前のみで検索 |
PackagistとはComposer用の基本的なパッケージを保管している場所で、パッケージ取得元です。
Composerが対応しているパッケージを集めて公開しているので、サイト内でパッケージの検索・参照ができます。
オリジナルサイト:https://packagist.org/
日本語サイト:https://packagist.jp/
repository(レポジトリ)とは、ソースコードなど、何らかを保管している場所のこと。
ライブラリレポジトリなんかは、ライブラリを保存している場所ということ。
show
php composer.phar show
利用可能なパッケージを全て表示する。
特定のパッケージ詳細を表示
php composer.phar show ベンダー名/パッケージ名 // (例) php composer.phar show monolog/monolog
list
php composer.phar list
コマンドの一覧を表示する。
共通で使えるコマンド
Composerで使う全てのコマンドに共通するオプションです。
//例 php composer.phar -V
-V | -version | バージョンを表示: composer -VでComposerのバージョンを表示 |
-v | -verbose | 詳細メッセージを表示: composer -vでComposerの詳細表示 |
-h | -help | ヘルプを表示:composer -hでComposerのヘルプ表示 |
-profile | メモリ使用量と実行時間の表示 | |
-d | -working-dir | 作業フォルダを指定 |
-q | -quiet | メッセージ表示をしない |
-n | -no-interaction | 対話型でのメッセージ表示をしない |
-ansi | ANSIカラーを使ったメッセージ表示 | |
-no-ansi | ANSIカラーを使わないでメッセージ表示 |
Composerを使い倒す
そもそもComposerを使うメリット
フレームワークの種類で、cakePHPやfuel PHP、Laravelなどがありますが、これらのソフトウェアを使うときにComposerも一緒に使われます。
Composerを使うメリットとして
- 必要な時に必要なライブラリをダウンロードしなくてもいい
- 自動的に使用したいパッケージ(クラス)をインストールしてくれるオートローディングがある
- 同じ開発現場内で、重なったライブラリをダウンロードしなくてよくなる
- システムごとにライブラリをインストールしてくれ、バージョンの違いで困らない
などがあります。
ライブラリによっては他のライブラリに依存していることがほとんど。
使いたいときに必要なライブラリ1つ1つ探して持ってくるのは、時間がかかりとても大変な作業になってしまいますね。
Composerはこの大変な作業を指示して実行しただけで行ってくれ、かつ使用したいクラスに応じたファイルも自動的に読み込んでくれるとっても便利なツールなのです。
Composerはこう使え!コマンド逆引き
composer.json作成 | php composer.phar init |
パッケージ インストール | php composer.phar install |
パッケージ アップデート | php composer.phar update |
特定のパッケージ アップデート | php composer.phar update ベンダー名/パッケージ名 |
パッケージの 追加・更新 | php composer.phar require (ベンダー名/パッケージ名 : バージョン) |
パッケージの検索 | php composer.phar research 検索したいワード |
パッケージの リストを表示 | php composer.phar list |
パッケージ参照 | php composer.phar show ベンダー名/パッケージ名 |
パッケージの削除 | php composer.phar remove |
Composer自体 アップデート | php composer.phar self-update |
プロジェクト作成 | php composer.phar create-project ベンダー名/パッケージ名 |
オートローダーの アップデート | php composer.phar dump-autoload |
まとめ
いかがでしたか?
Composerはコマンドラインからインストールやアップデート、検索などができる、とっても便利な機能なのです。
はじめは特にいじることはないかと思いますが、PHPを使っていくにつれて色々と必要になってくることが増えるので、ぜひここのリストを参考にしてみてくださいね。