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

こんにちは。侍エンジニア塾ブログTech編集部です。

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

  • Composerって何?
  • どうして必要なの?
  • インストールに必要な環境
  • インストール方法
  • 覚えておくべき知識
  • 使うメリット
  • 逆引きコマンド一覧

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

Composerとは

shutterstock_1068581792

画像:shutterstock

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

PHPではパッケージ依存管理ツールのことで、Composerはそのツールの名前。Composerはコマンド*1で操作ができるので、インストールやアップデートなど全てコマンドプロンプトやターミナル上で行います。PHPを使う際に、たくさんの処理・機能が入ったライブラリ*2(パッケージ)を使うことがあり、Composerはこれをまとめて管理しているのです。

便利な機能は複雑な処理になっていることが多く、関数処理を再利用(依存)していたり、再利用している機能に新しく処理を追加してパッケージ*3になっていたりします。このライブラリを使うことによって、シンプルなコードが書けたり、複雑な処理をとっても簡単に使うことができますが、使うためにはライブラリ自体を持ってこないといけません。

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

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

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

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

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


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

Composerをインストール

shutterstock_410460505

画像:shutterstock

必要な環境

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

画像:shutterstock

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

画像:shutterstock

そもそも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

PHPを継続的に学習するコツ

PHPの学習をしていて、わからないところが多く何回も調べながらやるのは正直、嫌になってしまいますよね。そこで、どのようにすれば継続的に学習を続けて行けるのかそのコツをご紹介します。

目的を明確にする

まずは、なぜPHPを学んでいるのか明確にしましょう。例えば、PHPを学んで

  • Webサイトが作りたい
  • WordPressの編集がしたい
  • エンジニアとして転職したい
  • フリーランスを目指したい


など、目的は色々あると思います。

この目的を明確にすることがとても大事で、PHPを学ぶ学習意欲に繋がっていきます。目的がないまま学習をしていると、学習すること自体が目的になってしまい、ゴールのない果てしない道を進むことになります。その結果、挫折してしまう人が多いのが現状となっています。

そうならないためにも、PHPを学ぶ目的は言えるようにしましょう。もし言えない場合は、学ぶプログラミング言語自体間違っている可能性もあります。なので、しっかり目的から学んでいる言語があっているか確認しましょう。

学習プランを決める

目的が明確になったら、次に学習プランを立てましょう。この学習プランを立てずに学習している人が多いのですが、学習プランがないと自分が今どのくらい進んでいて、後どのくらい学習をすればいいのか見えないので、学習をすること自体がきつく長続きしません。

学習を継続的に続けるためには学習プランは必須とも言えます。いつまでに、どのレベルになっていて、最終的なゴールはいつ達成するのかはしっかり決めましょう。

先生を見つける

「何度もエラーになって、自分で調べては修正する」この繰り返しがPHPを学習していると起こります。調べてもよくわからないし、時間もかかってしまってプラン通りに学習が進まないというのは当然のように起こります。

調べて直したけどうまく動かないしどうなってんの

このように思い、学習をすること自体に嫌気が指して挫折してしまう人も多いです。

そうならないためにも、「先生」を見つけることが大事になります。先生と言ってもそう簡単に探せそうにないですよね。最近ではSNSでもコミュニティーが増え、相談しやすい環境が増えてきています。こういったコミュニティーや勉強会を利用して先生を見つけるのも一つの手です。

自分に投資することも大事

学習サイトやアプリなど、無料で学習できる環境が整ってはいるものの自分に投資して学習をすることも大事です。本や有料学習サイトは、無料では学べない範囲の学習や機能が付いているので、効率的に学習をすることが可能です。

そして、投資のもう一つの方法がプログラミングスクールで学ぶことです。

独学と違い、プログラミングスクールでは上で紹介した学習を継続するためのサポートが徹底されているので、最も効率の良い学び方と言えるでしょう。先生も自分で探す必要がないので、エラーなどで躓いて時間がかかる心配もありません。

ですが、当然いきなりスクールに入るのは抵抗がありますよね。

その場合は、弊社で行っている無料体験レッスンへ参加してみてください。この無料体験レッスンでは、なぜPHPを学ぶのかその目的をヒアリングして、本当にPHPを学ぶべきなのか、その学習プランはどのように立てるのかなどの提案をしています。

目的をヒアリングすることで、あなたに最適な言語や学習プランが分かるので、最速でエンジニアを目指せるイメージがわきます。

手軽にしかもオンラインでも受けられるので、ぜひ一度目的を明確にしてみましょう。

無料体験レッスンに申し込む

まとめ

いかがでしたか?

Composerはコマンドラインからインストールやアップデート、検索などができる、とっても便利な機能なのです。

はじめは特にいじることはないかと思いますが、PHPを使っていくにつれて色々と必要になってくることが増えるので、ぜひここのリストを参考にしてみてくださいね。

LINEで送る
Pocket

無料でSEからWebエンジニアへ転職しませんか?



侍エンジニア塾では、完全未経験の方から現在SEだけどプログラミングはやっていないという経験者まで、幅広い方々の人生を好転させるプログラミング指導を行ってきました。SEの方とお話していくなかで、

  • システムエンジニアという職業だけどコードが書けない
  • 事務作業が多くスキルがないため将来が不安
  • スクールに通うと完全未経験者と同じスタートになるからレベルが合わない
という、すでに知識があるSEならではのお悩みがあることに気づきました。そんな方におすすめなのが、弊社の「転職コース 」です。

弊社では、マンツーマンでレッスンを行いますので、現在お持ちの知識レベルからカリキュラムを作成いたします。さらにこちらの転職コースは無料で受講を始められて転職成功でそのまま卒業できるというとてもお得なコースとなっています。

既に知識のあるSEといっても転職は年齢が若いほど受かりやすいため、まずは無料体験レッスンで今の現状や理想の働き方について一緒に考えていきましょう。

まずは無料体験レッスンを予約する

書いた人

侍テック編集部

侍テック編集部

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説