SHOEISHA iD

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

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

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

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

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

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

その他のオプション

 先ほど紹介したコマンドを含めて、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を使って管理する方法などを紹介します。

参考資料

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

  • 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」など、さまざまなカンファレンスを企画・運営しています。

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

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

メールバックナンバー

アクセスランキング

アクセスランキング