また遊びで作り始めました。 今更フレームワークかよと思われるのもごもっともですが、作るに至るきっかけもありまして。
CodeIgniter2系の問題
このブログのエンジンにも使ってる「seezoo」ですが、ベースとなるフレームワークはCodeIgniterを使っています。それも1.7.3という古いバージョンで、すでにメンテナンスはされていません。
いずれはCodeIgniter 2系に載せ替える予定もありましたが、諸々の理由により、CodeIgniterを使い続けることが難しくなってきているのが現状です。この辺りは以下のリンクなどを参照願います(ご存知の方も多いでしょうが)。
もちろんCodeIgniterに問題があるわけでは全くなく、そもそもGPLというライセンスで配布するのが難しい、ということですね。さらにOSLについては未だに良く分かっていません…。
なければ(あるけど)作ればいいじゃない
ありがたい事に、seezooをWebサイト構築+システム開発のスケルトンとして使ってくださってる方もいます。それだけCodeIgniterの自由度が高かったわけですが、CMSを作る上で、かなりのコアの変更を行う必要があったのも事実です。なので、いっそのことこれらのコアの変更をデフォルト機能として提供するFWにすればいいじゃんと思い立ったわけです。つまりは汎用的なFWではなく、どちらかというとCMSを動作させるために新しく作りなおした感じですね(それなりに汎用的に作ってはいますが)。(*1)
FuelPHPやLaravelなど、PHP5.3の機能を使った新しくて素晴らしいフレームワークは沢山ある中(実際触ってみましたし、素晴らしいです)、今更感漂うPHP5.2でも動作するようにしているのもそんな理由からです。大抵の共用サーバで動いてナンボなので。(*2)
習作としてのフルスタック(っぽい何か)
今まではFWに助けられて、アプリケーションロジックに注力する書き方をしてきましたが、それ以外の細かい部分(特にPHPでは厄介とされる所ですかね)を改めて勉強し直す意味で、フルスタックというほどでもないですが、色んな機能のライブラリも作りました。GD系の関数とかなんですかねアレ。typoさせようとしてるんですかね。引数で混乱させようとしてるんですかね。普段自分がいかに楽してたかを知りました。
ちょっと汎用的、でも特定の用途に向けて
まだドキュメントが作れていませんが、基本的にはCodeIgniterに準拠するような感じの構成です(コードはイチから書いてますが)。
当面の目標は、CMSの載せ替えの土台になったらいいなーという程度に考えてます。色々足りてない所がまだまだあるので。
ソースコード
githubに上げてます。よろしければドゾー。ご意見あればゼヒー。
*1. 中身的にはKohanaによく似てると思います。 *2. __callStaticオーバーロードと名前空間、クロージャはすっごく使いたかったんですけどね…