php 디자인 모델 의 데이터 대상 맵 모드 분석

3490 단어 php데이터반사
pp 의 디자인 모델 에는 여러 가지 모델 이 있 습 니 다.여기 서 자주 사용 하지 않 는 데이터 맵 모델 을 소개 하 겠 습 니 다.글 이 여러분 에 게 도움 이 되 기 를 바 랍 니 다.
데이터 맵 모드 는 응용 프로그램 과 데이터 베 이 스 를 더욱 잘 조직 하여 상호작용 을 할 수 있 습 니 다.
데이터 맵 모드 는 대상 의 속성 과 표 필드 간 의 결합 밀 도 를 낮 춥 니 다.데이터 매 핑 모델 의 본질은 바로 하나의 유형 이다.매 핑 또는 번역 류 의 속성 이나 방법 으로 데이터 뱅 크 의 해당 필드 에 가 는 것 이 고 반대로 도 마찬가지 이다.
데이터 맵 의 역할(작업)은 쌍방 이 보 여 준 정보 에 대한 이해 와 정보 액세스 에 따라 제어 할 수 있 는 데 있다.예 를 들 어 데이터 시트 에 저 장 된 정보 와 같다.
새로운 도 메 인 대상 을 재 구축 하거나 도 메 인 대상 의 정보 로 데이터 시트 의 관련 데 이 터 를 업데이트 하거나 삭제 합 니 다.
대상 코드 와 데이터베이스 시트 와 필드 간 의 매 핑 관계 에 대한 저장 은 여러 가지 실현 방식 이 있다.그 중 가능 한 방법 은 수 동 인 코딩 을 통 해 이러한 매 핑 관 계 를 데이터 매 핑 류 에 저장 하 는 것 이다.
다른 선택 할 수 있 는 방법 은 PHP 의 배열 을 사용 하여 클래스 자체 로 인 코딩 하 는 것 입 니 다.이 클래스 는 INI 나 XML 파일 같은 외부 소스 에서 도 데 이 터 를 가 져 올 수 있 습 니 다.
데이터 대상 매 핑 모드 는 대상 과 데 이 터 를 매 핑 하 는 것 으로 한 대상 에 대한 작업 은 데이터 저장 에 대한 작업 으로 매 핑 됩 니 다.
코드 에서 데이터 대상 맵 모드 를 실현 하고 ORM 류 를 실현 하 며 복잡 한 sql 문 구 를 대상 속성 으로 표시 하 는 작업 을 합 니 다.대상 관계 매 핑(Object Relational Mapping,ORM)
ha_cl 표

Hacl.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");
}
}
Factory.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;
}
}
Register.php

<?php
namespace Baobab;
class Register{
protected static $objects;
static function set($alias, $object){
self::$objects[$alias] = $object;
}
static function _unset($alias) {
unset(self::$objects[$alias]);
}
static function get($name) {
return self::$objects[$name];
}
}
index.php

class Page{
function index(){
$hacl = Baobab\Factory::getHacl(13);
$hacl->haclname = '    ';
$this->test();
echo 'ok';
}
function test(){
$hacl = Baobab\Factory::getHacl(13);
$hacl->hacls = '    ';
}
}
$page = new Page();
$page->index(); 
공장 모드 를 사용 하면 여러 번 대상 Hacl 을 만 들 고 자원 을 낭비 합 니 다.대상 을 매개 변수 로 전달 하면 한편 으로 는 추가 적 인 사용 비용 을 가 져 올 수 있 습 니 다.또한 이 대상 을 사용 하면 오류 가 발생 하기 쉬 우 므 로 공장 모드 에서 등록 트 리 모드 를 사용 하여 이 문 제 를 해결 합 니 다.
이상 의 내용 은 phop 디자인 모델 의 데이터 대상 맵 모델 을 소개 하 였 으 니 여러분 께 도움 이 되 기 를 바 랍 니 다!

좋은 웹페이지 즐겨찾기