ゲームと猫と多肉植物を愛するMioです。
最近は猫を見ているだけで飽きないのですっかりPS4を起動しなくなってしまいました。
代わりに多肉植物を育てるという時間のかからない且つ一見オーガニックな趣味を見つけたのですが、実のところは交配してオリジナル品種を作出するというマッドサイエンティストな野望を抱いています。
さて、MONSTER DIVEではWordPress関係のお仕事を定期的にいただくのですが、新規構築する際に毎回同じ作業をするのはダサいな!という気持ちになった秋の夜長。
今回はComposerを使ってWordPressの導入作業を出来る限り自動化して楽するための小ネタです。
PHPのパッケージ管理システムです。
MacにおけるHomebrewだったり、あるいはNode.jsにおけるnpmと同じ位置づけです。
例えばAというライブラリを導入したいと思った時、Aを動かすためにBが必要で、さらにBを動かすためにはCが必要、という依存関係があったとします。
従来の導入手順だと、Aを入れようとしたらBが無いと怒られて、それならばとBを入れようとしたら今度はCを入れろと叱られ...
という煩わしいたらい回しがありました。
パッケージ管理システムを使えば、そのあたりの依存関係を勝手に解決してくれます。
さらに、導入したいライブラリを毎回探してDLして、という手間もなくなります。
今やComposerはある程度のPHP開発には無くてはならないデファクトスタンダード化しています。
でも、WordPressのテーマ開発においてComposerによる導入というのはまだあまり一般化していない気がします。
確かにWordPressの場合はそれほど大きな規模の開発にはなりづらく、Composerを使うまでもないということもあると思いますが、いざ使ってみると、
というメリットがあるわけで、一度使い始めるとこれ無しでは生きていけない身体になりました。
お好きなディレクトリにて、
curl -sS https://getcomposer.org/installer | php
を実行すると、 composer.phar というプログラムが落ちてきます。
これをそのまま
php composer.phar
と実行しても動くのですが、面倒なので"composer"コマンドだけで叩けるようにしましょう。
mv composer.phar /usr/local/bin/composer
これでOK。
Nodebrewに存在しているので、
brew install composer
だけでインストールできます。
プロジェクトのディレクトリ内に移動して、同一階層に
composer.json
というjson形式の設定ファイルを用意します。
その中にインストールしたいパッケージの名前やバージョンを書いておけば、あとは
composer install
を実行するだけで諸々のパッケージが自動的にDLされます。
設定ファイルに変更があった場合は
composer update
を実行すれば、変更部分のみアップデートされます。
いきなり結論から書いてしまいますが、私はこんなjsonを用意しました。
{ "name": "monsterdive/wp-composer", "authors": [ { "name": "Mio", "email": "hoge@monster-dive.com" } ], "repositories":[ { "type": "composer", "url": "https://wpackagist.org" }, { "type": "composer", "url": "https://wp-languages.github.io" } ], "require": { "johnpbloch/wordpress": ">=4.9.8", "wpackagist-plugin/wp-multibyte-patch": ">=2.8.1", "wpackagist-plugin/advanced-custom-fields": ">=4.4.12", "koodimonni-language/core-ja": "*" }, "autoload": { "psr-0": { "Acme": "src/" } }, "extra": { "installer-paths": { "public/wp-content/plugins/{$name}/": ["type:wordpress-plugin"] }, "dropin-paths": { "public/wp-content/languages/": ["vendor:koodimonni-language"], "public/wp-content/languages/plugins/": ["vendor:koodimonni-plugin-language"], "public/wp-content/languages/themes/": ["vendor:koodimonni-theme-language"] }, "wordpress-install-dir": "public" } }
あとはこのcomposer.jsonが置かれたディレクトリで
composer install
するだけで、目的のファイルがすべて自動的に落ちてきます。
もちろんwp-config.phpの設定変更などは必要ですが、そこまでの初期導入作業が相当簡略化されたはずです。
このcomposer.jsonをWP導入時の基本設定として使い回すだけで、毎回パッケージファイルをかき集める作業から開放されます。
さらに、自作のcomposerパッケージを登録しておいて必要に応じてインストールすることも出来るので、例えばプレーンな基本テーマのようなものをgithubに登録しておいて使い回すのも良さそう。
とにかくComposerは導入も設定も超カンタンなので、WordPress開発でもそれ以外でも是非お試しください。