php의 디자인 패턴에는 다양한 패턴이 있습니다. 여기서는 일반적으로 사용되지 않는 데이터 매핑 패턴을 소개합니다. 관심 있는 친구들은 한 번 살펴보세요.
데이터 매핑 패턴을 사용하면 좋습니다. 애플리케이션이 데이터베이스와 상호 작용하는 방식을 보다 효율적으로 구성합니다.
데이터 매핑 모드는 객체의 속성과 이를 저장하는 테이블 필드 간의 조합 밀도를 줄입니다. 데이터 매핑 패턴의 핵심은 클래스의 속성이나 메서드를 데이터베이스의 해당 필드에 매핑하거나 변환하는 클래스입니다.
데이터 매핑의 역할(작업)은 양 당사자가 제시한 정보를 이해하고 데이터 테이블에 저장된 정보를 기반으로 새로운 도메인 객체를 재구성하는 등 정보에 대한 접근을 제어하는 것입니다
, 또는 도메인 객체를 사용 데이터 테이블의 관련 데이터를 업데이트하거나 삭제하기 위한 정보입니다.
객체 지향 코드와 데이터베이스 테이블 및 필드 간의 매핑 관계 저장을 구현하는 방법에는 여러 가지가 있습니다. 한 가지 가능한 방법은 직접 코딩하여 데이터 매핑 클래스에 이 매핑 관계를 저장하는 것입니다.
또 다른 대안은 PHP 배열을 사용하여 클래스 자체에 인코딩하는 것입니다. 이 클래스는 INI 또는 XML 파일과 같은 외부 소스에서 데이터를 얻을 수도 있습니다.
데이터 개체 매핑 모드는 개체와 데이터 저장소를 매핑합니다. 개체에 대한 작업은 데이터 저장소에 대한 작업에 매핑됩니다.
코드에 데이터 개체 매핑 모드를 구현하고 ORM 클래스를 구현하여 복잡한 SQL 문을 개체 속성 작업에 매핑합니다. 객체 관계형 매핑, ORM .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 중국어 웹사이트의 기타 관련 기사를 참조하세요!