Amimoto AMI で Composer を使おう!

Amimoto AMI で Composer を使おう!

1分もあれば AWS Marketplace から Amimoto AMI をローンチできます。もちろん、一度立ち上げたサーバでコンポーネントの依存関係の管理に Composer(コンポーザー) を使用することもできます。Amimoto AMI は Amazon Web Services がメンテナンスしている Amazon Linux ディストリビューションを採用しているため、これから案内する内容は Amimoto AMI 向けのものとなっており、他のディストリビューションでは動作しないかもしれません。

コピペで実行できるコマンドはこの通り。
cd ~ && \
sudo curl -sS https://getcomposer.org/installer | sudo php && \
sudo mv composer.phar /usr/local/bin/composer && \
sudo ln -s /usr/local/bin/composer /usr/bin/composer
同じコマンドを分かりやすく、1行ずつに分けるとこうなります。
$ cd ~
$ sudo curl -sS https://getcomposer.org/installer | sudo php
$ sudo mv composer.phar /usr/local/bin/composer
$ sudo ln -s /usr/local/bin/composer /usr/bin/composer

Composer とはなにか?

Composer は PHP のパッケージを管理するツールです。これを使うことで、開発者は依存関係の解消やインストール、削除、バージョン管理など多くのことを Composer CLI や設定ファイルでコントロールできます。

Composer やパッケージ依存管理ツールの利用に慣れていない場合、ややこしいツールに見えたり、そもそも必要と思わないこともあるでしょう。 WordPress の多くの開発者やユーザは、 wordpress.org の公式のプラグインディレクトリからダウンロードしてインストールしたり、ダウンロードしてきたプレミアムプラグインをアップロードしたりしてプラグインの管理をしています。とはいえ、他の開発者と一緒に仕事をしたり、管理しているプロジェクトをスケールすることになった場合、そのような手順では管理しきれないかもしれません。そういったときにパッケージを管理できる Composer が役に立つでしょう。

WordPress で Composer を使用する

WordPress で一番分かりやすい依存関係の例を挙げると、プラグインでしょうか。Composer では、いつものプラグインを新規のプロジェクトに追加したり、特定のバージョンのみ使用するようにしたりといったことが容易に管理できます。コマンドを2、3叩いたり、Composer の設定ファイルに書いたりするだけでプラグインのインストールやアンインストール、更新などさまざまなことができます。ここまで読むと WP-CLI みたいだなと感じるかもしれません。確かに WP-CLIと重なる部分はありますね。WP-CLI との一番大きな違いは、 Composer は同じコードを他の開発者と共有できるという点です。Git などのバージョン管理システム (VCS) を使って開発している場合は、インストール・更新するプラグインやバージョンなどを設定することで、他の開発者が同じプラグイン・同じバージョンを一度に導入できるようになります。

Composer は WordPress 向けに作られていませんが PHP のパッケージ管理ツールです。 WordPress デベロッパーが利用しやすくする方法はいくつかあります。 WordPress Packagist (WPackagist) がいい例です。これは WordPress のプラグインディレクトリのミラーで、ユーザがここからソースを取得することもできます。カスタムプラグインやプレミアムプラグインは載っていませんが、それらは Git のプライベートリポジトリやパブリックリポジトリで見つかるでしょう。

Composer の設定は composer.json ファイルで行います。WPackagist には一般的なプロジェクトの設定や依存関係についての良い設定例が掲載されているので参考にしてみてください。

Composer を採用している既存の WordPress プロジェクト

試したいと思っているけどどこから手を付けていいかわからない場合、これから挙げるプロジェクトを参考にしてみてください。

Apollo by J2 Design

https://github.com/j2made/apollo

Apollo は Composer を WordPress とプラグインの管理に使っています。Apollo では、プロジェクト設定ファイルのバージョン管理とメンテナンスがなされています。Composer がインストールされたすべてのサーバはたった一つのコマンドで動かせるようになっています。Gulp、Burbon や SCSS などを含めた Boilerplate の完全なテーマフレームワークです。テーマフレームワークのプロジェクトを始めるには最適でしょう。

Sage by Roots

https://github.com/roots/sage

Apollo は Roots.io チーム の作った テーマ Boilerplate である Sage のフォークです。Sage もまた Composer を WordPress とプラグインなどの依存関係の管理に使っています。

新しいプロジェクトやまだ知らないプロジェクトがないか気になっているので、お気に入りやお勧め のものが あればぜひメールでお知らせください