PHPがMVCを実現する最も簡単な方法――モデル


昨日はMVCを使って、たくさんのデータベース操作をして、性能が下がると言われました。これは本当に驚きました。MVCはただのフレームで、データベース操作とは何の関係もありません。MVCははっきりとしたプログラミング開発モードを提供しています。よく処理すれば、多くの無駄なデータベース操作が不可能です。MVCの場合は、プログラマが知らないで多くのデータベース操作をすることができますが、決して良いMVCアーキテクチャではありません。MVCは簡単な開発の枠組みを提供すればいいと思います。多くの倉庫を統合する必要はありません。      私自身のこのMVCフレームワークの目的は簡単なMVCプロセスを実現するだけです。本当に小さくて、柔軟で、効率的にできます。      数週間前に2つの文章を書きましたが、「PHPがMVC開発の最も簡単な方法―ビューとモデル技術」、「PHPがMVC開発の最も簡単な方法―シングルポイント入口」を実現しました。今日は具体的にMVCのモデルの実現方法を説明します。      私はMVCの理論を深く研究したことがありません。私個人にとって、モデルはデータベースのパッケージです。モデルを呼び出す方法はデータを得ることができます。実際の開発では、一つのデータベースのテーブルが一つのモデルに対応する可能性が高いです。例えば、ユーザー情報テーブルuserinfoには、モデルuserがあります。モデルuserのadd()を呼び出すことによって、データベースにデータを追加できます。select()を通じて検索ができます。udateを通じて更新ができます。また、モデルは具体的なデータベースタイプとは関係がないはずです。mysqlを使っても、oraceはsqlです。 server同時に、私はWEB開発にRORを使うことを勧めません。SQL言語を使うのはどんなに便利ですばやいことか、そして性能がもっといいです。プログラマがSQLの知識を持っていないなら、彼は合格したプログラマーとは思えません。したがって、私はモデルの中で直接的なSQLクエリを実現するためのqueryの方法を提供します。       次は模型の一つの大体の結果です。完全なコードではなく、完全なコードはデモバッグを参照してください。 
 
<?   
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=''){}//    

   function detail($where,$tbname=''){}//    
}   
?>  
    このモデルでは、配列とデータベースのフィールドを使って対応しています。初期のPHPBBEANでは対象を使って対応しています。しかし、この方法はPHPでは良くないと感じました。そして、多くの無意味な種類が増えました。配列を使うほうが便利で、効果がいいです。      次のデモでは、私はmysqlデータベースを使ってデモンストレーションしています。その中で、データベースの操作類は自分の元の倉庫類に変えます。詳しくは「以前のライブラリ類を修正してください。php 5-」php 4を見てください。      以下、demoを使って詳しく説明します。       元のカバンのindex.phpの中で増加します。  register('db',mysql);   unset($mysql)   ?>      このコードは主にMYSQLを登録器に登録しています。登録器の使用原理について、翻訳した二つの文章を見ることができます。   次にmysql Controller.class.phpファイルを新規作成します。コードは以下の通りです。  module=new module('52 site')siteinfo;///52 site_siteinfoは表の名前です           $this->module->query names 'gb 2312''')///MYSQL 5でしたら、この文をつけてください。       }       機能 indexAction(){           printr($this->module->select()//。これでデータの読み込みが実現されました。       }   }   ?>        上はまずコントローラのコンストラクションの中にモデルを入れます。そしてindexActionの中でモデルの方法を呼び出してデータを表示します。これにより、最も簡単なクエリーリストが実現されます。この住所で結果を確認してもいいです。http://path/to/yoursite/mv...       今後は具体的なデモを書いて、モデルの使い方を説明します。