MVCフレームワーク

フレームワークの概念

フレームワークとは

「フレームワーク」という言葉は最近PHPの世界でもよく聞かれるようになりました。
フレームワークって一体なんでしょうか。

PHPは基本的にほとんど0に近い状態からプログラミングをしていきます。
プログラミングも本当に実装者によって千差万別。ひたすら一枚のPHPファイルにダラダラとスクリプトを記述していく人や、ある程度モジュール化する人、オブジェクト指向を取り入れる人、同じオブジェクト指向でもクラス設計も人によって千差万別。

PHPはとっつきやすい分、いろんな人が手を出し、実装方法も好き放題。
それが良いとか悪いとか言う話ではありませんが、例えば複数人数で一つのシステムを開発するような場面があったとしたら話は別です。

それぞれが好き放題にやっていてはものすごく品質にムラのあるシステムが出来上がってしまいます。

フレームワークとは、ある程度の基礎的な仕組みを作っておき、アプリ開発時にはそれに乗せるような形で実装をしていく事を可能とするものです。

クラスの名前はこういう規則に従わないと動きませんよ、メソッド名も同じくですよ、
ファイルは決められた位置においてくださいね。ただし規則にしたがって作ればとても楽に作れますよ。っていう感じです。

Webアプリとしての土台の仕組みを作っておくのです。
それにより、アプリ実装の労力の軽減、保守性の確保、均質化と可読性の向上などが見込めます。

フレームワークの実装形態

Webの基本的な仕組みとしては、
クライアントよりのリクエストを受け取り、そのリクエスト情報をもとにHTMLを生成し、レスポンスとして返すという一連の流れによるものです。

従来のPHPの実装方法はこれらの流れを1から10まで実装します。
URLに対応したPHPファイルを用意し、その中では$_POST等のリクエスト変数を参照してそれをもとに処理を行い、文字列として生成したHTMLをechoなどで出力する。

途中、複数ページで共通するような処理は関数化して別ファイルにモジュール化しておき、これを呼び出す。という感じでしょう。

フレームワークの基本的な考え方はこの逆転と考えてください。
基本的な処理流れはフレームワークに行わせ、ページごとに異なる処理のみを個々に実装する。
そしてこの、個々に実装した処理をフレームワークに呼び出させるような形になります。
つまり、フレームワークによって自動的に呼び出されるはずのメソッドの中身を埋めていく、
という実装方法になります。

VBやC#といったような業務アプリ向けの言語はイベント駆動系と呼ばれます。
これらをご存知の方は、これに近い実装方法と考えていただければよいと重います。

フレームワーク利用の意義

フレームワークが流行している一つの要因として、
PHPがここまで普及し、大規模開発にも採用されるケースが増えたことにより、従来のような自由奔放な実装では収拾がつかなくなってきたということではないでしょうか。

PHPは意識して構造化を図らないとグダグダなシステムが出来上がります。
フレームワーク化により、これを打開していきましょう。