CodeZine(コードジン)

特集ページ一覧

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

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

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

目次

その他のオプション

 先ほど紹介したコマンドを含めて、Composerで利用できる主要なコマンドを紹介します

composer init

 composer.jsonファイルを、指定したオプションをデフォルト値として対話式で作成します。

リスト10 実行例
$ composer init --name="vendorname/pkgname"
  • --name : パッケージ名を指定する
  • --description : パッケージの説明を指定する
  • --author : パッケージの作者を指定する
  • --homepage : パッケージのホームページを指定する
  • --require : パッケージの依存制約を指定する。foo/bar:1.0.0 のように指定する
  • --require-dev: 開発版パッケージの依存制約を指定する。--requireと同様に記述する
  • --stability(-s): minimum-stabilityの値を指定する

composer install

 composer.jsonファイルを読み込み、依存パッケージなどのインストールを行います。

リスト11 実行例
$ composer install
  • --prefer-source : パッケージをダウンロードする際に、sourceからインストールする
  • --prefer-dist : パッケージをダウンロードする際に、distからインストールする
  • --dry-run : 実際には実行せずに、シュミレートモードで実行し処理をチェックする
  • --dev : require-devで指定されたパッケージをインストールする
  • --no-dev : require-devで指定されたパッケージのインストールをスキップする
  • --no-scripts : composer.json内で指定されたスクリプトの実行を行わない
  • --no-progress : ダウンロードの進捗状態の表示を行わない
  • --optimize-autoloader(-o): PSR-0/4に従ったクラス用に最適化されたautoloaderを作成する

composer update

 バージョンの依存関係を最新に更新し、composer.lockを更新します。また、特定のパッケージのみを更新する場合には、(1)もしくは(2)のように指定します。

リスト12 実行例
$ composer update
$ composer update vendor/package1 vendor/package2     //(1)
$ composer update vendor/*                            //(2)
  • --prefer-source : パッケージをダウンロードする際に、sourceからインストールする
  • --prefer-dist : パッケージをダウンロードする際に、distからインストールする
  • --dry-run : 実際には実行せずに、シュミレートモードで実行し処理をチェックする
  • --dev : require-devで指定されたパッケージをインストールする
  • --no-dev : require-devで指定されたパッケージのインストールをスキップする
  • --no-scripts : composer.json内で指定されたスクリプトの実行を行わない
  • --no-progress : ダウンロードの進捗状態の表示を行わない
  • --optimize-autoloader(-o): PSR-0/4に従ったクラス用に最適化されたautoloaderを作成する

composer require

 composer.jsonのrequireパッケージを追加、更新します。また、vendorフォルダに対し指定したパッケージの追加、更新も行います。対話モード(1)と、パッケージ名を指定(2)するモードがあります。

リスト13 実行例
$ composer require                            //(1)
$ composer require pear/archive_tar:1.3.*     //(2)
  • --prefer-source : パッケージをダウンロードする際に、sourceからインストールする
  • --prefer-dist : パッケージをダウンロードする際に、distからインストールする
  • --dev : require-devで指定されたパッケージをインストールする
  • --no-update : 依存関係のアップデート行わない。
  • --no-progress : ダウンロードの進捗状態の表示を行わない

composer search

 現在のパッケージリポジトリからパッケージを検索する。デフォルトでは、packagistから検索します。

リスト14 実行例
$ composer search monolog
  • --only-name(-N) : 名前のみを検索対象とする

composer show

 利用可能なパッケージ一覧を表示します。

リスト15 実行例
$ composer show
$ composer show pear/archive_tar
  • --installed(-i) : インストールされているパッケージを表示する
  • --platform(-p) : プラットフォームパッケージを表示する
  • --self(-s) : ルートパッケージを表示する

composer self-update

 composerコマンド自身を最新に更新します。共通コマンドとしてインストールしている場合には、root権限で実行します。

リスト16 実行例
# composer self-update

composer dump-autoload

 クラスマップに新しいクラスを追加し、オートローダーを更新する必要がある場合にinstallコマンドや、updateコマンドを利用する代わりにこのコマンドを利用します。

リスト17 実行例
$ composer dump-autoload
  • --optimize(-o): PSR-0/4オートロードをクラスマップに変換します。本番環境で利用を推奨します。
Zend StudioでのComposerの利用方法

 ComposerはZend Studioなどでの標準でサポートされており、エディター上からComposerのinstall/updateなどのコマンドが実行できます。

 

図5 Zend StudioでのComposer用の編集ビュー
図5 Zend StudioでのComposer用の編集ビュー

 必要最低限ではありますが、composer.jsonファイルをテキストエディタで修正すると割り切れば機能的にも十分と言えます。

 

 また、EclipseのPluginでもhttp://composer.dubture.com/のようなプラグインがあります。こちらは筆者は使ったことはありませんが、こちらの方が非常に機能が多くなっています。

最後に

 今回はComposerを使ってみるということに重点をおいて説明をしましたので、内容については今一つ分からないこともあったかと思います。

 しかしながら、既存のライブラリを使うという点であれば、ここまでの知識でも十分と思います。今までPEARも含めてパッケージ管理を使わず、プロジェクトのフォルダにライブラリのソースを配置して管理していた場合には、composer.jsonという管理ファイルがあるだけで、後でどのような用途で何のライブラリを把握するのに役にたちますので、部分的にでも導入していくとよいと思います。次回からはcomposer.jsonファイルの中身のルールや、自作したライブラリをComposerを使って管理する方法などを紹介します。

参考資料



  • 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