ドメインモデリング基本クラス
リリース: 2016-07-25 08:48:16
遅延読み込みと一意の登録を実装しました Java では工場と倉庫の概念を導入する必要がありますが、PHP では同じ機能を完了するのに 2 ~ 3 行のコードのみが必要です
- /**
- * ドメイン モデルの親クラス
- * 遅延データの読み込みと一意としての登録を実装
- * @author liuxu
- *
- */
- 抽象クラス Domain
- {
-
- protected $_id;
- protected $_id2;
-
- protected $_fields = array();
-
- protected $_loadedById = false;
-
- static protected $_objs;
-
- プライベート関数 __construct($id,$id2=0)
- {
- $this->_id = $id?$id:0;
- $this->_id2 = $id2?$id2: 0;
- }
-
- 静的パブリック関数ファクトリー($id,$id2=0)
- {
- $class = get_called_class();
- if(!isset(self::$_objs[$class][$id][$ id2]))//一意として登録します
- {
- self::$_objs[$class][$id][$id2] = new $class($id,$id2);
- }
-
- return self::$ _objs[$class][$id][$id2];
- }
-
- public functionload($fields=array())
- {
- if($fields)
- {
- foreach($fields as $key=> $value)
- {
- $this->_fields[$key] = $value;
- }
- }
- }
-
- public function wash()
- {
- $this->_fields = array();
- }
-
- //完全なデータをロードします
- 抽象保護関数loadById();
-
- public function __get($field)
- {
- if(!isset($this->_fields[$field]) && !$this-> _loadedById )
- {
- //遅延読み込み
- $this->loadById();
- $this->_loadedById = true;
- }
-
- $value = isset($this->_fields[$field]) ?$ this->_fields[$field]:null;
- return $value;
- }
-
-
-
- }
コードをコピー
|
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
-
2024-10-22 09:46:29
-
2024-10-13 13:53:41
-
2024-10-12 12:15:51
-
2024-10-11 22:47:31
-
2024-10-11 19:36:51
-
2024-10-11 15:50:41
-
2024-10-11 15:07:41
-
2024-10-11 14:21:21
-
2024-10-11 12:59:11
-
2024-10-11 12:17:31