WordPressと他のPHPアプリを組み合わせたいことがあるのですが、どういう方法があるか考えてみました。
WordPressを使うならPluginを組み合わせるというのが一番多いのだと思いますが、WebアプリやWebサービスのオンラインマニュアルはWordPressで作りたいといったことは多いでしょう。オンラインマニュアルだけなら、WordPress + StaticPressでなんとでもなりますが、オンラインマニュアルにブログを組み合わせたい、みたいなことを考えるとWordPressを組み込みたくなるはずです。
FuelPHPとWordPressを組み合わせるのはそれほど難しくないようです。FuelPHPのドキュメントルートのディレクトリでWordPressをインストールするなど、いくつか簡単な方法があるようです。WordPressをFuelPHP内に組み込むか、WordPress内にFuelPHPを組み込むかの選択肢もあるようです。気になるのは、.htaccessによるURIの変換をどちらも使っているので、そのあたりをどう調整するか、というところです。WordPressのパーマネントリンクのカスタマイズなどは注意が必要になるでしょう。
CakePHP2もWordPressと組み合わせることができるようです。Bakeコマンドで生成したモデルのPHPコードをWordPressのテンプレートやfunctions.phpで利用することをやっている人もいるようです。PHPのコードを理解できる人なら、そういったこともできるということですね。
個人的には疎結合させた方が楽なのではないか、と考えていてプログラムコード自体は増えますが、WordPress+JSONプラグインとか、FuelPHPはJSONデータもしくはRSSデータを返すようにしてWordPress側で利用する、みたいな連携にしておけば、汎用性が高くなっていいと考えています。ちょっとした機能を手軽に実装するには、中に組み込んでしまった方がいいのですが、WordPress本体のバージョンアップやFuelPHP本体のバージョンアップなどの影響を受けやすくなるでしょうし、それぞれで干渉し合うところもあるかもしれないので、出来るだけ疎結合にしておくのがいいのだろうなぁ、という感じです。
疎結合させた場合に課題となるのは、たぶん認証周りです。FuelPHPが提供するJSONデータの参照程度ならWordPressからアクセスできるように設定しておけばいいだけなので、それほど難しくないのですが、CRUDとなるとWordPress側にFulePHPアプリ用のクライアントライブラリを組み込むところまで必要になって、ちょっと面倒な感じが出てきそうです。ただ、利用するユーザが誰になるかにもよるので、場合によってはWordPressのアカウントとFuelPHPアプリのアカウントは別管理でも大丈夫だということがありそうです。
ぼんやりと考えているだけで、実装まできちんとイメージはしていないのですが、こうやって組み合わせようとすると、それぞれのフレームワークやWebアプリについて、それなりの知識が必要になってくるので、それなら最初から全部開発した方が速い、みたいになる開発者も多いと思います。ただ、経験上でいうと、そこまでコストをかけて実装しても、コストをペイできるだけの収入は見込めないので、採用できない感じです。まぁ、新規に作るところまでは良いとしても、メンテナンスができないのですよね…
- WordPressによるWebアプリケーション開発
- CakePHP2 実践入門 (WEB+DB PRESS plus)
- はじめてのフレームワークとしてのFuelPHP 改訂版
- パーフェクトPHP (PERFECT SERIES 3)