Warning: preg_replace() [function.preg-replace]: Compilation failed: missing ) at offset 9 in /virtual/kameleon/public_html/wiki/lib/func.php on line 522

Warning: preg_replace() [function.preg-replace]: Compilation failed: missing ) at offset 9 in /virtual/kameleon/public_html/wiki/lib/func.php on line 522

Warning: preg_replace() [function.preg-replace]: Compilation failed: missing ) at offset 9 in /virtual/kameleon/public_html/wiki/lib/func.php on line 522

Warning: preg_replace() [function.preg-replace]: Compilation failed: missing ) at offset 9 in /virtual/kameleon/public_html/wiki/lib/func.php on line 522

Warning: preg_replace() [function.preg-replace]: Compilation failed: missing ) at offset 9 in /virtual/kameleon/public_html/wiki/lib/func.php on line 522

Warning: preg_replace() [function.preg-replace]: Compilation failed: missing ) at offset 9 in /virtual/kameleon/public_html/wiki/lib/func.php on line 522

Warning: preg_replace() [function.preg-replace]: Compilation failed: missing ) at offset 9 in /virtual/kameleon/public_html/wiki/lib/func.php on line 522

Warning: preg_replace() [function.preg-replace]: Compilation failed: missing ) at offset 9 in /virtual/kameleon/public_html/wiki/lib/func.php on line 522

Warning: preg_replace() [function.preg-replace]: Compilation failed: missing ) at offset 9 in /virtual/kameleon/public_html/wiki/lib/func.php on line 522

Warning: preg_replace() [function.preg-replace]: Compilation failed: missing ) at offset 9 in /virtual/kameleon/public_html/wiki/lib/func.php on line 522

Warning: preg_replace() [function.preg-replace]: Compilation failed: missing ) at offset 9 in /virtual/kameleon/public_html/wiki/lib/func.php on line 522
MVCフレームワーク - PHPでOOP
PHPOOP


Warning: preg_replace() [function.preg-replace]: Compilation failed: missing ) at offset 9 in /virtual/kameleon/public_html/wiki/lib/func.php on line 522

Warning: preg_replace() [function.preg-replace]: Compilation failed: missing ) at offset 9 in /virtual/kameleon/public_html/wiki/lib/func.php on line 522

Warning: preg_replace() [function.preg-replace]: Compilation failed: missing ) at offset 9 in /virtual/kameleon/public_html/wiki/lib/func.php on line 522

Warning: preg_replace() [function.preg-replace]: Compilation failed: missing ) at offset 9 in /virtual/kameleon/public_html/wiki/lib/func.php on line 522

Warning: preg_replace() [function.preg-replace]: Compilation failed: missing ) at offset 9 in /virtual/kameleon/public_html/wiki/lib/func.php on line 522

Warning: preg_replace() [function.preg-replace]: Compilation failed: missing ) at offset 9 in /virtual/kameleon/public_html/wiki/lib/func.php on line 522

Warning: preg_replace() [function.preg-replace]: Compilation failed: missing ) at offset 9 in /virtual/kameleon/public_html/wiki/lib/func.php on line 522

Warning: preg_replace() [function.preg-replace]: Compilation failed: missing ) at offset 9 in /virtual/kameleon/public_html/wiki/lib/func.php on line 522

Warning: preg_replace() [function.preg-replace]: Compilation failed: missing ) at offset 9 in /virtual/kameleon/public_html/wiki/lib/func.php on line 522

Warning: preg_replace() [function.preg-replace]: Compilation failed: missing ) at offset 9 in /virtual/kameleon/public_html/wiki/lib/func.php on line 522
Top > MVCフレームワーク

PHPのMVCフレームワークのまとめです。

用語

  • フレームワークとは 【framework】 - IT用語辞典

    フレームワーク 【framework】
    枠組み、下部構造、構造、組織という意味の英単語。

    ソフトウェアの世界では、アプリケーションソフトを開発する際に頻繁に必要とされる汎用的な機能をまとめて提供し、アプリケーションの土台として機能するソフトウェアのこと。
    アプリケーションの雛型
    開発にフレームワークを利用すると、独自に必要とされる部分だけを開発すれば済むため開発効率の向上が見込める。
    具体的なソフトウェアだけでなく、汎用的に適用できるプログラムの設計モデルや典型的な処理パターンなどを含めてフレームワークと呼ぶ場合もある。

  • MVCとは 【Model-View-Controller】 - IT用語辞典

    MVC エムブイシー:Model-View-Controller
    ソフトウェアの設計モデルの一つで、処理の中核を担う「Model」、表示・出力を司る「View」、入力を受け取ってその内容に応じてViewとModelを制御する「Controller」の3要素の組み合わせでシステムを実装する方式。

    メインの処理はModelに実装し、Modelは画面出力などは行なわない。
    処理結果はViewに渡され、画面表示などが行なわれる。
    ユーザからの入力はControllerが受け取り、何らかの処理が必要な場合はModelに依頼し、出力が必要な場合はViewに依頼する。

    このように、明確に機能ごとに分離することで、開発作業の分業が容易になり、また、互いに仕様変更の影響を受けにくくて済むようになる。
    もともと、Smalltalkでのグラフィカルインターフェース設計に用いられた概念で、最近ではJ2EEなど、エンタープライズシステムの開発などに応用される方法論である。

MVC.JPG
  • クライアントサーバモデル - Wikipedia

    クライアントサーバ(英:client-server)モデルは、クライアントとサーバを分離する、コンピュータネットワークのソフトウェアモデルである。
    C/Sなどと表記されることも多い。

  • アプリケーションサーバ - Wikipedia

    Web3層構成
    一般的なWebシステムの多くは「Web3層構成」と呼ばれる構成にて設計されている事が多い。
    このWeb3層設計は、以下の3つの層で構成されている。

    • ウェブブラウザからのHTTPによるアクセス要求を分散処理するWebサーバ層
    • HTTPトランザクションの一貫性を保持し、システム固有の処理を行い、バックエンドで動作するデータベースなどの検索/加工処理などを司るWebアプリケーション層
    • システムのデータや管理情報を司るデータベース層

フレームワークの特徴

制御の反転

  • フレームワークの本質は「制御の反転」にあり:ITPro

    フレームワークは再利用可能なクラスだと説明しました。
    それでは,フレームワークと同じく再利用可能なクラスの集まりであるライブラリとはどこが違うのでしょうか。
    両者の違いは,プログラマが書いたユーザコードと再利用可能なコード(フレームワークやライブラリ)との間の関係の違いにはっきりと表れます。
    ライブラリの場合,それを呼び出すのはユーザーのコードです。
    フレームワークでは,ユーザー・コードはフレームワークから呼び出されます。

    このように,プログラムの制御がユーザー・コードから再利用コードのほうに移っている現象を,「制御の反転」(Inversion of Control,IoC)と呼びます。そして,「制御の反転」こそがフレームワークの本質であり,定義とさえ言えます。

IoC.JPG

ポリモーフィズム

  • フレームワークとオブジェクト指向の関係:ITPro

    オブジェクト指向が広まるまでは,コードの断片をサブルーチン(関数)にすることが主要な再利用技術でした。
    サブルーチンは呼び出される側(ライブラリ)を先に作る仕組みであり,呼び出す側(フレームワーク)を先に作ることはできません。
    呼び出す側を先に作るには,まだ実際には作られていないコードを呼び出す仕組みが必要になります。
    オブジェクト指向の特徴である「継承」と「ポリモーフィズム」は,まさにこの「作られていないコードを呼び出す」ことを可能にする仕組みです。

    ポリモーフィズムとは,呼び出す側からはスーパークラスとサブクラスとを同じように扱える仕組みです。
    スーパークラスのインスタンスを操作するプログラムがあったときに,そこをサブクラスのインスタンスに置き換えたとしても,プログラムは基本的に正しく動作することができます。
    ポリモーフィズムを使うと,呼び出されているインスタンスのクラスを切り替えるだけで,呼び出し側のプログラムを修正することなく,その振る舞いを変更可能になります。

    フレームワークは,スーパークラスに対して呼び出すコードを作ります。
    ユーザーは,スーパークラスを継承し,フレームワークから呼び出されるメソッドを上書きします。
    こうすることで,ポリモーフィズムによって呼び出されるコードを後から開発することが可能になります。

Polymorphism.JPG

オブジェクトリレーショナルマッピング

  • O/Rマッピング・フレームワーク:ITPro

    RDBは表(テーブル)の世界であるのに対し,JavaやC#などのオブジェクト指向言語で書かれたプログラムはオブジェクトの世界です。
    表とオブジェクトとではデータ構造が異なる(「インピーダンス・ミスマッチ」がある)ため,両者を連携するには表形式からオブジェクトへの,あるいはその逆の変換が必要です。
    こうした変換を行うフレームワークが,O/Rマッピング・フレームワークです。

ORmapping.JPG

PHPのWEBフレームワーク

PHPフレームワーク特集 - PHPプロ

PHP用のWEBフレームワークは、いろいろ作られています。

  • MVC、イベント駆動型などの仕組みがあるようです。
  • コマンドラインツールを使ってスケルトン(骨格)を作成してから使うタイプと、コマンドラインツール無しですぐ使えるタイプがあるようです。
  • JavaのStruts、RubyのRuby on Rails、PythonのDjangoなどを参考にしている場合があるようです。

Zend Framework

Zend Framework(公式サイト)
プログラマ向けリファレンスガイド(日本語サイト)
Zend Framework入門
PHPフレームワーク Zend Framework入門(本)


Symfony

Symfony(公式サイト)
Symfonyの日本語情報(日本語サイト)
The Definitive Guide to symfonyの下翻訳(マニュアル)
symfony×PHP(本)
symfony徹底攻略(本)


CakePHP

CakePHP(公式サイト)
CakePHP Users in Japan(日本語サイト)
CakePHP プログラマーズ リファレンスガイド(マニュアル)
CakePHPで高速Webアプリ開発
CodeZine:CakePHPフレームワークによる快速WEB開発
CakePHP修行! アーカイブ | IDEA*IDEA
CakePHP のおいしい食べ方
CakePHPガイドブック(本)
Fast CakePHP(本)


CodeIgniter

CodeIgniter(公式サイト)
日本CodeIgniterユーザ会(日本語サイト)
CodeIgniter ユーザガイド 日本語版(マニュアル)

mojavi

Mojavi(公式サイト)
Mojavi Japan(日本語サイト)
【連載】PHP用MVCフレームワーク Mojavi
MVCフレームワークMojaviを使ってみよう
徹底比較!! PHP & Java ~ フレームワーク編
はじめてのPHP5プログラミング エキスパート編(本)


Ethna

Ethna(公式サイト)
Ethna×PHP(本)


ちいたん

ちいたん(公式サイト)

Piece Framework

Piece Framework(公式サイト)

rhaco

rhaco.org(公式サイト)

Akelos

Akelos(公式サイト)
Akelos PHPフレームワーク個人指導(日本語サイト)

PHP以外のWEBフレームワーク

言語フレームワーク
PerlCatalyst, Sledge など
PythonZope, TurboGears, Django, Plone など
RubyRuby on Rails など
JavaStruts, Spring など

Attach file: fileMVC.JPG 113 download [Information] fileORmapping.JPG 67 download [Information] filePolymorphism.JPG 80 download [Information] fileIoC.JPG 78 download [Information]

Reload   New Lower page making Edit Freeze Diff Upload Copy Rename   Front page List of pages Search Recent changes Backup Referer   Help   RSS of recent changes
Last-modified: (712d)