こんにちは!ぐちです。
フレームワーク
そもそもフレームワークって何でしょうか?日頃から便利に使わせてもらっていますがWikipediaにはこう書かれています。
開発・運用・意思決定を行う際に、その基礎となる規則・構造・アイデア・思想などの集合のこと。 日本語では「枠組み」などと訳されることが多い。 ソフトウェアフレームワーク – コンピュータ・プログラミング用語。 アプリケーションフレームワークなど。
僕のニュアンスとしてはお決まりの処理やクラスなど土台を作っておきそれらの上に決められたルールに従ってアプリケーションを構築していけば楽チンですよーというものだと認識しています。
CakePHP
当ブログでも度々登場していますがPHPではよくCakPHPを使います。これもフレームワークと呼ばれるもので学習コストも低めで簡単に扱うことができると思っています。
他にもZendFrameworkやCodeIgnitorなどがありますがフレームワークで決められたルールが多いほど学習コストが高まりますがその分チーム開発での規約が少なくて済みます。開発規模やチームメンバーのスキルレベルなどとのトレードオフになるかなといった感じですね。
CakePHPはフレームワーク自体のルールはそこまで厳しくなく中小規模のアプリケーション構築には持ってこいだと思います。大規模開発になると参画人数も多くなるので規約等は別途定めたほうがいいかもしれませんが。。。
Curry
上記のPHPフレームワークの一つにCurryというものがあります。これは小規模開発向けでルールも少なく柔軟に使うことができます。感覚ですがCakPHPと似ている部分もあるのでCakePHPを学習していた人には扱いやすいかなという印象です。
フレームワークとして実装されている機能は必要最低限といった感じですが一般的なWebシステムを構築するには問題ないレベルです。個人向けのフレームワーク学習には適した規模感だと思います。CakePHPに慣れ親しんだ方はちょっとした便利機能がなかったりするので物足りなさを感じることもあるかもしれません。
総評
あまり有名ではありませんが非常に優秀なフレームワークで実際に僕も公開しているサービスで利用させて頂いています。本当に必要最低限の機能のみではありますが入門者がMVCを学習したりフレームワークを学び始める場合にはシンプルな構成が非常に有効だと思います。
業務ではCakePHPを使うことがほとんどですがプライベートでは継続して使っていくつもりです。もちろんCakePHPでの開発も行っていきますけどね。笑