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

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

Jun 13, 2016 pm 12:32 PM
mvcphp使用成し遂げる開発する方法昨日持っているモデルプログラム

昨日、グループの誰かが、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 までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。