SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

PHPパッケージ管理ツール「Composer」入門

Composerを使ってPHPのパッケージを簡単インストール

PHPパッケージ管理ツール「Composer」入門 第1回

  • X ポスト
  • このエントリーをはてなブックマークに追加

 本連載では、Composerを使ったパッケージ管理を紹介します。PHPではデフォルトでインストールされているPEARがありますが、最近では、Composerというパッケージ管理ツールも使われつつあります。例えば、JavaなどではMavenのようなツールでパッケージ管理をしたり、Rubyではbundlerといったパッケージ管理が使われるなど、現在では多くの言語でパッケージ管理ツールが使われています。

  • X ポスト
  • このエントリーをはてなブックマークに追加

 パッケージ管理ツールを使うとプロジェクトで使われているライブラリの依存関係を管理しやすくなり、依存しているライブラリのインストールも簡単になります。CakePHPもComposerを使ってインストールができるようサポートしており、開発環境ではZend Studioなどでの標準サポートされているなど、PHPでの開発では必須知識といえるほどの広がりを見せています。

 本連載では、Composerの導入方法とその使い方から、利用者自身が作成したコードをComposerを使ってパッケージ管理する方法までを紹介します。

対象読者

 PHPで開発を行っている方を対象としています。

必要な環境

 この記事では、PHP 5.5を使用し、Windows 8.1、Linux(CentOS6.3)、Mac OS X(10.9)の環境で確認を行っています。ただし、Composer自身はPHP5.3.2以上からサポートしています。

Composerを使うメリット

 今までPEARなどのパッケージ管理がありましたが、それらに代わりComposerが広まりつつある理由はなんでしょうか? 筆者が思うには、大きく分けて2つの理由があると思います。

(1)パッケージ管理される範囲

 PEARでは通常、インストールしたパッケージはOS全体に反映していました。そのため、そのOS上で動作するすべてのプログラムに対してすべて適用する場合には非常に都合がよい方法でした。もちろん、PEARであってもインストールするフォルダをプロジェクトごとに設定してインストールすればできないことはないのですが、非常に手間がかかってしまいます。しかし、Composerではプロジェクト単位が基本になります。

 もちろん、一長一短はあるのですがPHPで構成されたプロジェクトが1つのディレクトリ内で完結できるメリットがあります。従って、複数のプロジェクトで同じライブラリを使っていても異なるバージョンを利用できますし、他のプロジェクトでインストールされたライブラリに影響されることもありません。また、PHPというプログラム特性上、root権限などがなくても手軽に使える必要があるというニーズもあることと思います。

(2)クラスオートローディング機能を利用できる

 クラスオートローディング機能とはPHP5.3から本格的に利用され始めた機能で、requireやincludeを記述することなく、クラスが使われているとそれに応じたファイルを自動的に読みこむ機能です。

 Composerを使って導入したパッケージのクラスを利用する際には、requireやincludeなどを記述せずにプログラムが記述できます。特にライブラリ内にある、直接プログラマが記述しないクラスを使う際には非常に便利な機能です。

 1つ目は管理体系の話であり、プログラマにとっては一度導入されればあまり違いがなく開発を進められると思いますが、この2つ目の利点はプログラマに対して直接メリットがあり、開発効率をあげることができます。このように、管理面とプログラマの効率面の2つの側面でメリットが得られる優れたパッケージ管理と言えると思います。

インストール

 続いて、OSごとのComposerのインストール方法を紹介します。

Windows環境の場合

 Windowsの場合にはインストーラーが用意されています。ComposerのダウンロードページからComposer-Setup.exeをダウンロードし、ファイルを実行するだけで終了します。

 インストールする際には、コマンドを実行せずにコンテキストメニューからComposerコマンドを実行できるようにするための指定ができます(図2)。また、最後にPHPのパスを指定(図3)する必要があります。

図1 Composerインストール画面
図1 Composerインストール画面
図2 Composerをコンテキストメニューで利用できるようにする
図2 Composerをコンテキストメニューで利用できるようにする
図3 PHPのパスを指定する
図3 PHPのパスを指定する

 また、コマンドラインを使ってもインストールすることができます。例えば、XAMPPでインストールしたフォルダ(c:\xampp\php)にインストールしたい場合には、以下のように直接ファイルを配置し、バッチファイルを作成します。

リスト1 Windowsでのコマンドライン上でのインストール方法
> cd c:\xampp\php
> php -r "readfile('https://getcomposer.org/installer');" | php
> echo @php "%~dp0composer.phar" %*>composer.bat

Linux/Mac環境の場合

 LinuxもしくはMacの場合にはコンソール上でインストールができます。リスト2(インストール手順)のように、(1)プログラムの本体であるcomposer.pharをダウンロードします。次にcomposerコマンドとして機能するように、ダウンロードしたファイルを/usr/local/binなどサーチパスが通った場所にcomposerコマンドとして配置します(2)

リスト2 インストール手順
$ curl -sS https://getcomposer.org/installer | php      //(1)
#!/usr/bin/env php
All settings correct for using Composer
Downloading...

Composer successfully installed to: /Users/phpuser/tmp/composer.phar
Use it: php composer.phar
$ sudo -s mv composer.phar /usr/local/bin/composer  //(2)

次のページ
使い方の流れ

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
PHPパッケージ管理ツール「Composer」入門連載記事一覧

もっと読む

この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

WINGSプロジェクト 小林 昌弘(コバヤシ マサヒロ)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/7827 2014/07/02 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング