2012年12月23日日曜日

PHP: 2012年のオレオレ=自作フレームワーク

2012年は2つも、フレームワークを自作してしまった。
俗にいう「オレオレ」である。
来年の抱負を考えるに当たり、一度まとめてみる。

AmidaMVC


恥ずかしながら、まともにMVCフレームワークを使ったことがなかった。ルーティングやらコントローラーぐらいのコードは読んではいるけど、理解しているとは言いがたい。じゃ、一度作ってみるかと…

最初は1ヶ月ぐらい開発して雰囲気がつかめたら終了と思っていたが、意外と面白く、書き直しも含めて数ヶ月近く作ってた気がする。

これを開発しながらPHPStormの使い方を覚えた。
またBEAR.Sundayなどのブログを読みふけっていた。

特徴はChain of Responsibility(CoR)というデザインパターンをフロントディスパッチャーとして使ってること。Request、Routerなどもモジュールの一つと捉えて、モジュールを次々と呼び出す。CoRは極めて柔軟性が高くて、使うモジュールを途中で差し替えたりできる。

もう一つの特徴は、マークダウンのファイルを、そのまま読み込んで、ヘッダー・フッターを付け加えたりできる。

さらに、テンプレートも裏に入っているので、githubからcloneして、中身をマークダウンで書けば、綺麗なサイトができる。エディターまでつけてしまって、もうフレームワークというよりCMSな感じになった。

そしてファットなフロントエンドが出来上がった。
ちょっと太りすぎで、今ひとつな感じになってしまった。

WScore


今、開発中のフレームワーク。
というかデータマッパー。

Doctrine2にフォーム生成をくっつけた感じ。

なので厳密にはフレームワークとは言えないかも。

目標は、

・今まで使っていたライブラリとの互換性を(ほんの少し)残す、
・「Cenaデータ転送エージェント」に対応する、
・できるだけ簡単かつ少ないコードで、
・最近学んだ「正しい」オブジェクト指向で開発する、
などで、個人的な内容が多いかな。

オレオレだから仕方がない。

開発して一ヶ月で意外と早く動き出した。その後、DCIに目移りして一ヶ月ほど寄り道したりしたけど、ただ、動くのと使いやすいのは違っていて… ある程度、動き出してからの修正に時間がかかってる。テスト書いていてよかった、と身を持って経験できた。

今は、多対多のリレーション絡みが少し抽象化が弱くて、Cenaに対応させるのに苦労しそうな感じです。とは言えサンプル・デモでは、Cenaをスキップさせることで動いてしまいましたが。

あとは1+N問題の対応とか、本格的に使うには
もう少し時間が必要そう。

0 件のコメント: