【PHP】Composerは絶対必要!インストール方法と解説で完全攻略

こんにちは。
情報サイトとか、ノートとか、あるトピックに関連する情報が1つにまとまっていると嬉しいmuramatsuです。

今回はPHPのフレームワークで何かと必要になってくるComposerについての解説です。

Composerって何?
どうして必要なの?

というところから

インストールに必要な環境
インストール方法

そして

覚えておくべき知識
使うメリット
逆引きコマンド一覧

をまとめて解説していきます!

目次

Composerとは

shutterstock_1068581792

Composer(コンポーザー)というと、音楽をやっている方はよく聞くかと思いますが、英語で作曲家や構成者、作成者などの意味があります。

PHPではパッケージ依存管理ツールのことで、Composerはそのツールの名前。

Composerはコマンド*1で操作ができるので、インストールやアップデートなど全てコマンドプロンプトやターミナル上で行います。

PHPを使う際に、たくさんの処理・機能が入ったライブラリ*2(パッケージ)を使うことがあり、Composerはこれをまとめて管理しているのです。

便利な機能は複雑な処理になっていることが多く、関数処理を再利用(依存)していたり、再利用している機能に新しく処理を追加してパッケージ*3になっていたりします。

このライブラリを使うことによって、シンプルなコードが書けたり、複雑な処理をとっても簡単に使うことができますが、使うためにはライブラリ自体を持ってこないといけません。

*1 コマンドとは、ハードウェアやソフトウェアを実行させるための指示や命令のこと。
命令文を書くコマンドプロンプト(Windows)・ターミナル(Mac)・コンソール(Linux)上で指定のコマンドを入力して命令をして実行させます。

*2 ライブラリとは、便利な機能の関数やクラス・定数のことで、プログラムの中からいつでも呼び出して利用できるようになっています。

*3 パッケージとは、まとまったライブラリのこと。
ライブラリは他のライブラリに依存しており、その関連しているライブラリがまとまったものを言います。

なぜパッケージ依存管理ツールなのかは、

  • Composerだけでは意味がなく、Composerを使うソフトウェアが必要になるということです。
    また、PHPアプリケーション開発環境の際に使用するいくつかのソフトウェアはComposerを使用していたりもします。
  • そしてそのプロジェクトはたくさんのライブラリに依存していることになります。
  • さらにComposerがまとめているライブラリ(パッケージ)は、他のライブラリに依存している

ということが挙げられます。

Composerをインストール

shutterstock_410460505

必要な環境

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-page1

「Download」をクリックすると、下記のダウンロードページへ行きます。

ダウンロードのページ:https://getcomposer.org/download/
download-page2

Windows InstallerのところにあるComposer-Setup.exeをクリックするとダウンロードされます。

保存されたフォルダからダウンロードした「Composer-Setup.exe」をダブルクリックして起動させます。

ダブルクリック後、コンピューターが「このアプリがデバイスに変更を加えることを許可しますか?」と聞いてくるかもしれません。
その場合は「はい」を選択して、進めてください。

 

インストールするための画面が表示されます。
install1

何もせずに「Next」をクリックします。
※「Developer mode」はチェックするとアンインストーラが含まれなくなるので、チェックはしなくても問題ありません。

 

次にインストールされているPHPの場所がどこか(=PHPのパス)を指定します。
通常は自動で入っています。
install2

もし入っていない場合は「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」をクリック。

 

次にプロキシの設定をします。
install3

Proxy(プロキシ)は英語で「代理」という意味があり、IT用語ではパソコンからインターネットを接続する際に、安全な通信で高速アクセスを確保してくれる中間のサーバのことです。

ここでは特に何も入力しなくて構いません。「Next」をクリック。
社内プロジェクトなどで使用している場合は、入力してください。

 

インストールを行います。
install4
Install」をクリック。

 

install5

インストールしています。しばし待ちましょう。

 

install6
Next」をクリック。

 

インストール完了です。
install7

Finish」をクリックしてウィンドウを閉じます。

 

しっかりとインストールされているか確認をしてみましょう。

「Winddows」キー+「R」キーを押して、出てきた「ファイル名を指定して実行」のウィンドウで「名前」のところに「cmd」と入力してください。
またはコンピュータ画面左下の「ここに入力して検索」に「コマンド」と入力して出てきた「コマンドプロンプト」をクリックしてください。
install-cmd

OK」をクリックしすると下画像のコマンドプロンプトが開きます。

install8

カーソルがあるところに「composer」と入力して「Enter」キーを押してください。
下のように、Composerのバージョンやインストールした日時などが表示されれば完了です。

install9

Composerを使うための覚えておくべき知識

shutterstock_407903728

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パッケージライセンス
-repository1つまたは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からパッケージをインストール
-devrequire-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 インストールする前に趣味レーションして何が起こるか教えてくれる
-devrequire-devで指定されたパッケージインストールを
有効にする
-no-devrequire-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を使い倒す

shutterstock_525198061

そもそも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を使っていくにつれて色々と必要になってくることが増えるので、ぜひここのリストを参考にしてみてくださいね。

この記事を書いた人

世界中の人たちと友達になって、その友達の家を巡る旅をしたいと密かに思っている。

複雑な内容を誰にでもわかりやすく、そして納得のいくような解説をする、をモットーにしています!

目次