CodeZine(コードジン)

特集ページ一覧

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

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

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2014/07/02 14:00

目次

使い方の流れ

 Composerの使い方は主に以下のような手順になります。

  1. プロジェクトのフォルダを作成
  2. 使いたいパッケージの定義ファイル(composer.json)を作成
  3. composer installのコマンド実行
  4. PHPのコーディング(autoloaderファイルの読み込み)

 まず、Composerはフォルダ配下にあるcomposer.jsonファイルを通じてパッケージを管理しますので、そのためのフォルダの作成と、composer.jsonファイルを作成します。すでに使いたいパッケージがComposerに対応している場合には、そのパッケージのインストール方法としてcomposer.jsonの記述例があります。

 その説明に従って記述するだけです。また、Composerに対応しているライブラリはpackgistで検索することができます。

リスト3 作成したcomposer.jsonファイル
{
  "require": {
    "guzzlehttp/guzzle": "4.0.*@dev"
  }
}

 今回はcomposer.jsonの細かい中身は気にせず流れを確認します。次回以降でcomposer.jsonの記述ルールを説明します。

リスト4 installの実行結果
composer install
Loading composer repositories with package information
Installing dependencies (including require-dev)
  - Installing guzzlehttp/streams (1.1.0)
    Downloading: 100%

  - Installing guzzlehttp/guzzle (dev-master b2edcf2)
    Cloning b2edcf2dc1b37623f648f181d729ecac0ce0c930

Writing lock file
Generating autoload files

 また、Windows環境でインストール時に「Install Shell Menus」にチェックした場合には、コンテキストメニューからコマンドを実行できます。

 実行が終了すると、composer.lockファイルと、vendorフォルダが作成され、そこに必要なライブラリのソースが展開されます。composer.lockファイルにはダウンロードされたパッケージ情報などが格納されて管理されています。従って、vendorフォルダでダウンロードされたファイルを含めてバージョン管理などする場合には、このcomposer.lockファイルも併せて管理する必要があります。

 また、展開されたファイルのオートローディングを提供するためのファイルとして、vendor/autoload.phpが作成されます。

図4 Composerで作成されるフォルダ構造
図4 Composerで作成されるフォルダ構造

 実際にインストールしたパッケージを使うにはコード5の(1)のようにautoload.phpをrequire_onceするのみで非常に簡単です。

リスト5 実際のコード
<?php
require_once("vendor/autoload.php"); //(1)

$client = new GuzzleHttp\Client();
$res = $client->get('http://rss.rssad.jp/rss/codezine/new/20/index.xml');
echo $res->getStatusCode();
echo $res->getHeader('content-type');
echo $res->getBody();

パッケージの追加と削除

 続いて、先ほど記述したcomposer.jsonから新たに必要になったパッケージがある場合の方法です。まず、同様に追加したいパッケージを同様にcomposer.jsonに追記します。今回はpear/archive_tarというパッケージを追加してみます。

リスト6 パッケージの追加のためのcomposer.json
{
  "require": {
    "guzzlehttp/guzzle": "4.0.*@dev",
    "pear/archive_tar" : "1.3.*"
  }
}

 記述が終了しましたら、updateコマンドを以下のように実行します。これで、新たなパッケージが追加されます。

リスト7 パッケージの追加のためのupdateコマンド実行結果
$ composer update
Loading composer repositories with package information
Updating dependencies (including require-dev)
  - Installing pear/archive_tar (1.3.11)
    Loading from cache

Writing lock file

 実際にどのようなパッケージが導入されたのか確認してみます。確認する方法はshowコマンドです。また、インストールされたパッケージ一覧を参照するためには引数に"-i"を指定します。

リスト8 インストールされているパッケージ一覧を参照する
$ composer show -i
guzzlehttp/guzzle  dev-master b2edcf2 Guzzle is a PHP HTTP client library and framework for building RESTful web service clients
guzzlehttp/streams 1.1.0              Provides a simple abstraction over streams of data (Guzzle 4+)
pear/archive_tar   1.3.11             Tar file management class

 続いて、必要なくなったパッケージがある場合には同様に、composer.jsonから削除します。先ほど追加したpear/archive_tarが必要なくなった場合には、追記前の状態にcomposer.jsonを戻し、再度、updateコマンドを実行します。

リスト9 パッケージ削除のためのupdateコマンドの実行結果
$ composer update
Loading composer repositories with package information
Updating dependencies (including require-dev)
  - Removing pear/archive_tar (1.3.11)
Writing lock file
Generating autoload files

 このようにcomposer.jsonを更新していくことでプロジェクトのパッケージ管理が行えます。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

バックナンバー

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

著者プロフィール

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

    <WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。個人紹介主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしど...

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

    静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for ASP/ASP.NET。執筆コミュニティ「WINGSプロジェクト」代表。 主な著書に「入門シリーズ(サーバサイドAjax/XM...

あなたにオススメ

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5