ホームページ  >  記事  >  php教程  >  PHP は MVC 開発用の最も単純なメソッド モデルを実装します。

PHP は MVC 開発用の最も単純なメソッド モデルを実装します。

WBOY
WBOYオリジナル
2016-06-13 12:32:111177ブラウズ

昨日、グループの誰かが、MVC を使用するとプログラムに多くのデータベース操作が追加され、パフォーマンスが低下すると言いました。これには本当に驚きました。 MVC は単なるフレームワークであり、データベース操作とは何の関係もありません。 MVC は明確なプログラミング開発モデルを提供するだけであり、それを適切に扱う限り、多くの不必要なデータベース操作を実行することは不可能です。 MVC により、プログラマが知らないうちにさらに多くのデータベース操作を実行できるようになる場合、それは明らかに優れた MVC アーキテクチャとは言えません。 MVC は単純な開発フレームワークを提供するだけでよく、多くのライブラリ クラスを統合する必要はなく、プログラマがライブラリ クラスを使用することを選択するのが最善だと思います。
私自身の MVC フレームワークの目的は、単純な MVC プロセスを実装することだけです。特定の状況に応じて、その他のフレームワークを詳細に追加できます。まさにコンパクト、フレキシブル、そして効率的です。
私はここ数週間で 2 つの記事、「PHP で MVC 開発を実装する最も簡単な方法 - ビューとテンプレートのテクノロジ」、「PHP で MVC 開発を実装する最も簡単な方法 - 単一のエントリ ポイント」を書きました。今日は MVC モデルの実装方法について具体的に説明します。
私個人としては、MVC の理論を詳しく勉強したことはありませんが、モデルはデータベースのカプセル化であり、モデル メソッドを呼び出すことで、対応するデータを取得できますが、プログラマは実装の詳細を気にする必要はありません。 。実際の開発では、データベースのテーブルがモデルに相当することが多いでしょう。たとえば、ユーザー情報テーブル userinfo はモデル ユーザーに対応し、モデル ユーザーの add() メソッドを呼び出すことで、データベースにデータを追加したり、select() を介してクエリを実行したり、更新したりできます。それはアップデートを通じて行われます。同時に、モデルは、mysql、oracle、または SQL サーバーのいずれを使用するかにかかわらず、特定のデータベースの種類に依存しない必要があります。同時に、WEB開発でRORを使用することはお勧めしません。複雑な複数テーブルのクエリにはSQL言語を使用する方が便利で高速であり、パフォーマンスも優れています。 SQL の知識すらないプログラマーは、資格のあるプログラマーとは言えないと思います。したがって、直接 SQL クエリを実装するためのクエリ メソッドをモデルに提供します。
以下はモデルのおおよその結果です。これは完全なコードではありません。完全なコードについてはデモ パッケージを参照してください。

コードをコピー コードは次のとおりです:


クラス モジュール{

var $mysql;//mysql、oracle、sql などのデータベース操作クラス

var $tbname;// モデルに対応するテーブル名

var $ debug=false;// デバッグ モードですか?

function module($tbname,$db=''){}// コンストラクター関数

function _setDebug($debug=true){ }//デバッグをオンまたはオフにするパターン

function add($row,$tbname=''){}//新しいレコードを追加します

function query($strsql){}/ /直接クエリ SQL ステートメント

function count($where='',$tbname=''){ }//カウント統計

function select($where='',$tbname= ''){}//クエリ

function delete($where='',$tbname=''){}// 条件を満たすレコードを削除します

function update($ set,$where,$tbname=' '){}// 指定したレコードを更新します

functiondetail($where,$tbname=''){}// レコードの詳細を表示します
}
?>



このモデルでは、配列とデータベース フィールドを使用して対応させます。初期の PHPBEAN では、オブジェクトを使用して対応していました。しかし後になって、この方法は PHP では良くないと感じ、不要なクラスを大量に追加してしまいました。配列を使用する方が便利で優れています (PHP の配列は確かに優れており、JAVA よりもはるかに優れています)。

以下のデモでは、デモンストレーションのために mysql データベースを使用しました。詳細については、「以前のライブラリ クラス php5->php4 を変更する」を参照してください。 。

次にデモの使い方を詳しく説明します。 ^_^
元のパッケージのindex.phpを追加します

require_once(SITE_PATH.'/libs/phpbean.class.php');
require_once( SITE_PATH .'/libs/mysql.class.php');
$phpbean=new phpbean();

$mysql=new mysql("localhost","* * **","****","52site");
$phpbean->register('db',$mysql);
unset($mysql);
?>>

このコードは主に MYSQL をレジストラに登録します。レジストラの使用原理については、私が翻訳した 2 つの記事を参照してください。
次に、次のコードを使用して新しい mysqlController.class.php ファイルを作成します。

function mysqlController(){
require_once(SITE_PATH.'/libs) /module.class.php');
$this->module=new module('52site_siteinfo'); //52site_siteinfo はテーブル名です
$this->module->query("set names 'gb2312'");//MYSQL5 の場合はこの文を追加してください
}

functionindexAction(){
print_r($this->module->select() );//このようにして、データの読み取りが実現されます。
}
}
?>

上記の最初のことは、コントローラーのコンストラクターにモデルを追加することです。次に、indexAction のモデル メソッドを呼び出してデータを表示します。これは最も単純なクエリ リストを実装します。このアドレスから結果を表示できます http://path/to/yoursite/mv...
将来的には、クエリなどのモデルの他のメソッドの使用方法を説明する具体的なデモを作成する予定です。更新、追加、ページング リスト、複数テーブル クエリなど。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。