MVC模式的php(做为现在的主流开发语言)实现
作者:Harry Fuecks 翻译:Easy Chen
MVC模式在网站架构中十分常见。它允许我们建立一个三层结构的应用程式,从代码中分离出有用的层,帮助设计师和开发者协同工作以及提高我们维护和扩展既有程式的能力。
视图(View)
“视图”主要指我们送到Web浏览器的最终结果——比如我们的脚本生成的HTML。当说到视图时,很多人想到的是模版,但是把模板方案叫做视图的正确性是值得怀疑的。
对视图来说,最重要的事情可能是它应该是“自我意识(self aware)”的,视图被渲染(render)时,视图的元素能意识到自己在更大框架中的角色。
以xml(标准化越来越近了)为例,可以说xml(标准化越来越近了)在被解析时,DOM API有着这样的认知——一个DOM树里的节点知道它在哪里和它包含了什么。 (当一个xml(标准化越来越近了)文档中的节点用SAX解析时只有当解析到该节点时它才有意义。)
绝大多数模板方案使用简单的过程语言和这样的模板标签:
{some_text}
{some_more_text}
ドキュメント内では何の意味も持たず、それらが表すのはphp
(現在の主流の開発言語として)だけであり、他のものに置き換えられます。
ビューに関するこの大まかな説明に同意する場合は、ほとんどのテンプレート ソリューションがビューとモデルを効果的に分離していないことにも同意するでしょう。テンプレート タグは、モデルに格納されているものに置き換えられます。
ビューを実装するときは、「ビュー全体を置き換えるのは簡単ですか?」「新しいビューを実装するのにどれくらい時間がかかりますか?」「ビューの記述言語を置き換えるのは簡単ですか?」ということを自問してください。たとえば、同じビュー内で HTML ドキュメントを SOAP ドキュメントに置き換えます)"
モデル モデルはプログラムのロジックを表します。 (エンタープライズ レベルのプログラムではビジネス層と呼ばれることがよくあります) 一般に、モデルのタスクは、元のデータを、ビューによって表示される特定の意味を含むデータに変換することです。通常、モデルは、クエリを実装するための抽象データ クラス (データ アクセス層) を介して、データ クエリをカプセル化します。たとえば、英国の年間降雨量を計算したい場合 (素敵な休暇の場所を見つけるためだけに)、モデルは 10 年間の毎日の降雨量を受け取り、平均を計算し、それをビューに渡します。
Controller
簡単に言えば、コントローラーはWebアプリケーションに入るHTTPリクエストによって呼び出される最初の部分です。一部の GET 変数など、受信したリクエストをチェックし、適切なフィードバックを行います。最初のコントローラーを作成する前に、他の PHP(現在の主流の開発言語として)
コードを書き始めるのは困難です。最も一般的な使用法は、index.php
(現在の主流の開発言語として)の switch ステートメントのような構造です:
(現在の主流の開発言語として)
switch ($_GET[viewpage] ) { case "news":
$page=new NewsRenderer;
case "links":
$page->display();
; このコードは手続き型とオブジェクト指向コードですが、小規模なサイトの場合は、通常、これが最良の選択です。ただし、上記のコードはまだ最適化できます。
コントローラーは実際には、モデルデータとビュー要素の間のバインディングをトリガーするために使用されるコントロールです。
例
MVCパターンを使用した簡単な例を示します。
まず共通クラスであるデータベースアクセスクラスが必要です。
(現在の主流の開発言語として)
/**
* MySQLをクエリするための簡単なクラス
(PHPとの組み合わせに最適) */
class Dataaccess
(小規模なウェブサイトに人気)
{ /** * プライベート
* $db はデータベースリソースを格納します
*/
var $ db; /**
* プライベート
* $query はクエリリソースを格納します
*/ var $query; // クエリリソース // コンストラクター。 $this->db=MySQL
( PHP との最良の組み合わせ)
_pconnect($host,$user,$pass);
MySQL
(そして PHP の最良の組み合わせ)
_select_db($db,$this->db);
http://www.bkjia.com/PHPjc/509143.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/509143.html技術記事
MVC モードでの PHP の実装 (現在の主流の開発言語として) 著者: Harry Fuecks 翻訳: Easy Chen MVC モードは、Web サイトのアーキテクチャでは非常に一般的です。これにより、三層構造を構築することができます...