phpのデザインパターンには様々なパターンがありますが、ここではあまり使われないデータマッピングパターンを紹介しますので、興味のある方はぜひご覧ください
。アプリケーションがデータベースと対話する方法をより効率的に整理します。
データ マッピング モードは、オブジェクトのプロパティとそれらを保存するテーブル フィールドの間の組み合わせの密度を減らします。データ マッピング パターンの本質はクラスです。クラスは、クラスの属性またはメソッドをデータベースの対応するフィールドにマップまたは変換し、その逆も同様です。
データマッピングの役割(仕事)は、双方が提示する情報を理解し、データテーブル
に格納された情報に基づいて新しいドメインオブジェクトを再構築したり、ドメインオブジェクトを使用したりするなど、情報へのアクセスを制御することです。データテーブル内の関連データを更新または削除するための情報。
<?php namespace Baobab; class Hacl{ public $id; public $haclname; public $haclcode; public $hacls; protected $db; function construct($id){ $this->db = new \Baobab\Database\Mysqli(); $this->db->connect('127.0.0.1', 'root', '', 'test'); $res = $this->db->query("select * from ha_cl where id = {$id}"); $data = $res->fetch_assoc(); $this->id = $data['ID']; $this->haclname = $data['ha_cl_name']; $this->haclcode = $data['ha_cl_code']; $this->hacls = $data['hacls']; } function destruct(){ $this->db->query("update ha_cl set ha_cl_code = '{$this->haclcode}', ha_cl_name = '{$this->haclname}', hacls = '{$this->hacls}' where ID = {$this->id} limit 1"); } }
index .php
<?php namespace Baobab; class Factory{ static function getHacl($id){ $key = 'user_'.$id; $user = \Baobab\Register::get($key);//表中id不同表示的是不同的对象 if(!$user){ $user = new \Baobab\Hacl($id); \Baobab\Register::set($key, $user); } return $user; } }
Factory Pattern を使用すると、オブジェクトがパラメータとして渡されると、オブジェクトHacl が複数回作成されます。一方で、このオブジェクトを多くの場所で使用すると、コストが非常に高くなるため、この問題を解決するためにファクトリ モードで登録ツリー モードが使用されます。
以上がPHPデータオブジェクトマッピングモードの例の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。