今回はPHPのフレームワークで何かと必要になってくるComposerについての解説です。
- Composerって何?
- どうして必要なの?
- インストールに必要な環境
- インストール方法
- 覚えておくべき知識
- 使うメリット
- 逆引きコマンド一覧
をまとめて解説していきます!
Composerとは
Composer(コンポーザー)というと、音楽をやっている方はよく聞くかと思いますが、英語で作曲家や構成者、作成者などの意味があります。
PHPではパッケージ依存管理ツールのことで、Composerはそのツールの名前。Composerはコマンド*1で操作ができるので、インストールやアップデートなど全てコマンドプロンプトやターミナル上で行います。PHPを使う際に、たくさんの処理・機能が入ったライブラリ*2(パッケージ)を使うことがあり、Composerはこれをまとめて管理しているのです。
便利な機能は複雑な処理になっていることが多く、関数処理を再利用(依存)していたり、再利用している機能に新しく処理を追加してパッケージ*3になっていたりします。このライブラリを使うことによって、シンプルなコードが書けたり、複雑な処理をとっても簡単に使うことができますが、使うためにはライブラリ自体を持ってこないといけません。
命令文を書くコマンドプロンプト(Windows)・ターミナル(Mac)・コンソール(Linux)上で指定のコマンドを入力して命令をして実行させます。
*2 ライブラリとは、便利な機能の関数やクラス・定数のことで、プログラムの中からいつでも呼び出して利用できるようになっています。
*3 パッケージとは、まとまったライブラリのこと。
ライブラリは他のライブラリに依存しており、その関連しているライブラリがまとまったものを言います。
なぜパッケージ依存管理ツールなのかは、
ということが挙げられます。
Composerをインストール
必要な環境
Composerをダウンロードするのには、
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 |
PHPを継続的に学習するコツ
PHPの学習をしていて、わからないところが多く何回も調べながらやるのは正直、嫌になってしまいますよね。そこで、どのようにすれば継続的に学習を続けて行けるのかそのコツをご紹介します。
目的を明確にする
まずは、なぜPHPを学んでいるのか明確にしましょう。例えば、PHPを学んで
- Webサイトが作りたい
- WordPressの編集がしたい
- エンジニアとして転職したい
- フリーランスを目指したい
など、目的は色々あると思います。
この目的を明確にすることがとても大事で、PHPを学ぶ学習意欲に繋がっていきます。目的がないまま学習をしていると、学習すること自体が目的になってしまい、ゴールのない果てしない道を進むことになります。その結果、挫折してしまう人が多いのが現状となっています。
そうならないためにも、PHPを学ぶ目的は言えるようにしましょう。もし言えない場合は、学ぶプログラミング言語自体間違っている可能性もあります。なので、しっかり目的から学んでいる言語があっているか確認しましょう。
学習プランを決める
目的が明確になったら、次に学習プランを立てましょう。この学習プランを立てずに学習している人が多いのですが、学習プランがないと自分が今どのくらい進んでいて、後どのくらい学習をすればいいのか見えないので、学習をすること自体がきつく長続きしません。
学習を継続的に続けるためには学習プランは必須とも言えます。いつまでに、どのレベルになっていて、最終的なゴールはいつ達成するのかはしっかり決めましょう。
先生を見つける
「何度もエラーになって、自分で調べては修正する」この繰り返しがPHPを学習していると起こります。調べてもよくわからないし、時間もかかってしまってプラン通りに学習が進まないというのは当然のように起こります。
このように思い、学習をすること自体に嫌気が指して挫折してしまう人も多いです。
そうならないためにも、「先生」を見つけることが大事になります。先生と言ってもそう簡単に探せそうにないですよね。最近ではSNSでもコミュニティーが増え、相談しやすい環境が増えてきています。こういったコミュニティーや勉強会を利用して先生を見つけるのも一つの手です。
自分に投資することも大事
学習サイトやアプリなど、無料で学習できる環境が整ってはいるものの自分に投資して学習をすることも大事です。本や有料学習サイトは、無料では学べない範囲の学習や機能が付いているので、効率的に学習をすることが可能です。
そして、投資のもう一つの方法がプログラミングスクールで学ぶことです。
独学と違い、プログラミングスクールでは上で紹介した学習を継続するためのサポートが徹底されているので、最も効率の良い学び方と言えるでしょう。先生も自分で探す必要がないので、エラーなどで躓いて時間がかかる心配もありません。
ですが、当然いきなりスクールに入るのは抵抗がありますよね。
その場合は、弊社で行っている無料カウンセリングへ参加してみてください。この無料カウンセリングでは、なぜPHPを学ぶのかその目的をヒアリングして、本当にPHPを学ぶべきなのか、その学習プランはどのように立てるのかなどの提案をしています。
目的をヒアリングすることで、あなたに最適な言語や学習プランが分かるので、最速でエンジニアを目指せるイメージがわきます。
手軽にしかもオンラインでも受けられるので、ぜひ一度目的を明確にしてみましょう。
まとめ
いかがでしたか?
Composerはコマンドラインからインストールやアップデート、検索などができる、とっても便利な機能なのです。
はじめは特にいじることはないかと思いますが、PHPを使っていくにつれて色々と必要になってくることが増えるので、ぜひここのリストを参考にしてみてくださいね。