昨日、グループの誰かが、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 クエリを実装するためのクエリ メソッドをモデルに提供します。
以下はモデルのおおよその結果です。これは完全なコードではありません。完全なコードについてはデモ パッケージを参照してください。
class module{
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 データベースを使用して、データベース操作クラスをオリジナルのライブラリ クラスの 1 つに変更しました。詳細については、「以前のライブラリ クラス php5->php4 を変更する」を参照してください。
次にデモの使い方を詳しく説明します。 ^_^
require_once(SITE_PATH.'/libs/phpbean.class.php');
$phpbean=new phpbean を追加します。 ();
グローバル $phpbean;
$mysql("localhost","****","52site"); ,$mysql);
unset($mysql);
?>
このコードは主に MYSQL をレジスタに登録します。詳しくは、私が翻訳した 2 つの記事をご覧ください。
次に、次のコードを使用して新しい mysqlController.class.php ファイルを作成します:
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());//これで読み込みが実現しますdata
}
}
?>
上記の最初のことは、コントローラーのコンストラクターにモデルを追加することです。次に、indexAction のモデル メソッドを呼び出してデータを表示します。これは最も単純なクエリ リストを実装します。このアドレスから結果を確認できます http://path/to/yoursite/mv...
将来的には、クエリ、更新、追加などのモデルの他のメソッドの使用方法を説明する特定のデモを作成する予定です、ページ分割されたリスト、複数テーブルのクエリなど。
http://www.bkjia.com/PHPjc/318188.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/318188.html
技術記事
昨日、グループの誰かが、MVC を使用するとプログラムに多くのデータベース操作が追加され、パフォーマンスが低下すると言いました。これには本当に驚きました。 MVC は単なるフレームワークであり、データベース操作とは何の関係もありません。 ...