ホームページ >バックエンド開発 >PHPチュートリアル >PHP で MVC 開発を実装する最も簡単な方法 - モデル
昨日、グループの誰かが、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 =''){}//詳細表示 A レコード
}
?>
このモデルでは、配列とデータベース フィールドを使用して対応させます。初期の PHPBEAN では、オブジェクトを使用して対応していました。しかし後になって、この方法は PHP では良くないと感じ、不要なクラスを大量に追加してしまいました。配列を使用する方が便利で優れています (PHP の配列は確かに優れており、JAVA よりもはるかに優れています)。
以下のデモでは、mysql データベースを使用して、データベース操作クラスをオリジナルのライブラリ クラスの 1 つに変更しました。詳細については、「以前のライブラリ クラス php5->php4 を変更する」を参照してください。
次にデモの使い方を詳しく説明します。 ^_^
require_once(SITE_PATH.'/libs/phpbean.class.php'); を追加します。
$phpbean=new phpbean( );
グローバル $phpbean;
$mysql=new mysql("localhost","****","52site"); mysql);
unset($mysql);
?> このコードは主に MYSQL をレジスタに登録します。詳細については、2 つの記事の翻訳を参照してください。
次に、次のコードを使用して新しい mysqlController.class.php ファイルを作成します:
/**
* MVC デモ デモ
* 最も基本的な MVC 機能のみを実装しており、セキュリティ処理、データ フィルタリング、その他の最適化対策は含まれていません。
* @author:feifengxlq
* @since:2007-1-24
* @copyright http://www.phpobject.net/blog/
*/
class mysqlController
{
var $module;
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...
将来的には、クエリ、更新、追加などのモデルの他のメソッドの使用方法を説明する特定のデモを作成する予定です、ページ分割されたリスト、複数テーブルのクエリなど。
以上、PHP で MVC 開発を実装するための最も簡単な方法、つまりモデルをさまざまな側面を含めて紹介しましたが、PHP チュートリアルに興味のある友人に役立つことを願っています。