そろそろ CodeIgniter からの移行先について一言言っておくか

(2012/08/30) そろそろ CodeIgniter からの移行先についてもういっぺんだけ言っておくか - A Day in Serenity @ kenjis を書きました。

ということで、ライセンス問題で発火した CodeIgniter から移行するフレームワークを検討されている方も多いかと思います。

[2014/10/29 追記] CodeIgniter 3.0 は MIT ライセンスでリリースされることになりました! 詳細

なので、参考のために移行先に関する情報を書いておきます。

似たようなフレームワークを探したい場合

断言しますが、候補はこの 3つです。

Kohana


Kohana は 2007年 5月に CodeIgniter から喧嘩別れしてフォークしたプロジェクトです。最初の正式リリース 1.0 は、2007年 6月に公開されました。現在は、完全に書き直されていますので、BSD ライセンスでライセンスされています。GPL 非互換の問題はありません。

Kohana は CodeIgniter からフォークしただけあって、CodeIgniter にいろいろな点で似ています。ただし、Kohana は当初から PHP5 や本格的な OOP を指向しており、CodeIgniter のように保守的ではありません。最新版の 3.2 は、PHP 5.2.3 を必要とします。

最初のリリースではドキュメントがありませんでしたが、現在は ドキュメント もかなり充実してきています。しかし、CodeIgniter のユーザガイドほどは見やすくはありません。また、日本語には翻訳されていません。 (12/30 追記)「Kohana 日本語ユーザ会」にて Kohana ユーザガイド の翻訳が進んでいるようです。

また、Kohana は、PHP 開発者の Rasmus Lerdorf 氏が使っているフレームワークです。

Yii


Yii は日本ではあまり盛り上がりませんが、世界的には人気急上昇のフレームワークです。これも BSD ライセンスです。2008年12月に最初の正式リリース 1.0 が公開されました。現在の Yii 1.1 は PHP 5.1 以上が必要です。

公式ガイド は日本語に翻訳されているようです。

Yii はそれほど CodeIgniter に似ているとは言えないかも知れませんが、CakePHP のように規約重視ではない点が CodeIgniter に近いです。

また、CodeIgniter のライセンス問題に直面した有名なオープンソースプロジェクトの LimeSurvey は Yii への移行を決め作業をすでに開始しています。LimeSurvey の関係者は、Yii はすばらしく移行作業は思ったよりもスムーズに進みそうだとコメントしています。

FuelPHP


FuelPHP は、CodeIgniter 関係の人が新しく作った MIT ライセンスのフレームワークです。2011年 1月に最初の公開ベータ版がリリースされました。詳細は、PHP フレームワークの「FuelPHP」がスゴすぎる をご覧ください。

FuelPHP は、CodeIgniter と Kohana を参考に SymfonyRails からもよいところ(FuelPHP の開発者がよいと思うところということですよ)を取り入れた PHP 5.3 以上が必要な最先端のフレームワークです。

Kohana と FuelPHP との違いは、CodeIgniter と Kohana の違いよりも少ないです。つまり、Kohana と FuelPHP は兄弟と言っていいほど似ています。

目についた違いとしては、以下があげられます。

ドキュメント は CodeIgniter のユーザガイドのように見やすいです。ただし、まだ不完全ですが。また、日本語への 翻訳現在進行中 です。

どれがいいのか?

PHP のバージョンの選択に制限がある場合は、それに影響されることでしょう。

また、データベースの選択に制限がある場合は、慎重にテストして検討してください。ドキュメントにサポートされていると書いてあっても実際には MySQL 以外はすぐにまともに動かないメソッドが出てくるかも知れません。あるいは、自分でフレームワーク用にドライバを書いてやるくらいの気持ちがあるといいと思います。特に CodeIgniter 系のフレームワークはそうです。Yii のデータベース対応が実際どうなっているかは調べていませんのでわかりません。

あとは、Yii の方が CodeIgniter からより離れた場所に位置するフレームワークであり、また、フレームワークとしての規模が大きいです。コーディング規約もかなり CodeIgniter と異なっています。

Kohana と FuelPHP は非常に似ていますので、感覚的な好みのほうが選択の決め手になるかも知れません。

日本語での情報に関して言えば、Kohana は歴史がある割に日本語情報は非常に少ないです。FuelPHP も日本語情報はほとんどありませんが、現在、ドキュメントの翻訳 が進んでいたり、Advent Calendar が開催されたりと勢いがあります。Yii は公式ガイドは翻訳されていますので、その点は有利ですが、やはり日本語の情報はあまりありません。

心機一転、新たなフレームワークを触ってみたいという場合

CodeIgniter に似たフレームワークでなくてもよいという場合は、非常に選択肢が広がりますね。PHP には山のようにフレームワークがありますから。むしろ多すぎて選べない状態に陥るかも知れません。

例えば、今後普及していくであろう PHP 5.3 フレームワークとしては、以下のようなものがあります。

また、日本語情報の多さから言えば、

が候補にあがってくると思います。

あと、EllisLab の教えに従い、ライセンスには十分注意し、きちんとライセンスを理解した後でそのフレームワークを使うようにしましょう。独自ライセンスにはどんな地雷があるかわかりませんし、できる限り避けた方が賢明かも知れません。有名なオープンソースライセンスのものを個人的にはお薦めします。


余談ですが、PHP にはデファクトフレームワークはないのか?と言う発言をたまに見かけますが、そんなものはないですし、あるべきでもありません。