PHP 에서 실 현 된 데이터 개체 맵 모드 상세 설명
아니면 코드 말 하기:여 기 는 전략 모드 의 psr-0 코드 규범 을 따 릅 니 다.
데이터 시트:
데이터베이스 연결 파일 Db.php(이전'PHP 단일 모드 데이터베이스 연결 클래스 와 페이지 정적 화'에서 찾 을 수 없 으 면)
클래스 파일 Config.php 자동 불 러 오기(이전'PHP 정책 모드'에 가서 가 져 올 수 있 습 니 다)
입력 파일 DataUser.php
<?php
define('BASEDIR', __DIR__);
//
require 'Config.php';
spl_autoload_register('Config::autolad');
//
$user = new Data(1);
var_dump($user->id, $user->name, $user->money);
//
$user->id = 1;
$user->name = 'zhangjianping';
$user->money = 10000;
?>
데이터 가 져 온 파일 Data.php
<?php
class Data
{
//
public $id;
public $name;
public $money;
//
protected $con;
//
public function __construct($id)
{
//
$this->con = DB::getInstance()->connect();
//
$res = $this->con->query('select * from account where id = '.$id.' limit 1');
$data = $res->fetch(PDO::FETCH_ASSOC);
//
$this->id = $data['id'];
$this->name = $data['name'];
$this->money = $data['money'];
}
//
public function __destruct()
{
$this->con->query("update account set name = '{$this->name}', 'money = {$this->money}' where id = {$this->id}");
}
}
?>
다음은 공장 모드,등록 트 리 모드,데이터 대상 맵 모드 를 사용 하여 이 예 를 보완 하 겠 습 니 다.DataUser.php
<?php
define('BASEDIR', __DIR__);
require 'Config.php';
spl_autoload_register(Config::autoload);
class DataUser
{
public function index()
{
//
$user = Factory::getUser(1);
var_dump($user->id);
$this->name();
$this->money();
}
public function name()
{
$user = Factory::getUser(1);
var_dump($user->name);
}
public function money()
{
$user = Factory::getUser(1);
var_dump($user->money);
}
}
?>
공장 류 Factory.php
<?php
class Factory
{
static function getUser($id)
{
// , , , ,
// id
$key = 'user_'.$id;
//
$user = Register::get($key);
//
if(!isset($user))
{
$user = new Data($id);
$user = Register::set($key, $user);
}
return $user;
}
}
?>
등록 기 클래스 Register.php
<?php
class Register
{
//
protected static $object;
//
public static function set($key, $value)
{
self::$object[$key] = $value;
}
//
public static function get($key)
{
return self::$object[$key];
}
//
public static function _unset($key)
{
unset(self::$object[$key]);
}
}
?>
이때 우리 가 Data.php 를 Data1.php 로 수정 하면 공장 모드 를 사용 하지 않 을 때 하나씩 클래스 이름 을 수정 해 야 합 니 다.지금 은 공장 모드 에서 만 수정 하면 됩 니 다.우 리 는 모든 대상 을 인쇄 할 수 있 습 니 다.이때 우 리 는 이 세 대상 이 모두 똑 같다 는 것 을 알 게 될 것 입 니 다.이것 은 우리 가 등록 기 모드 를 사 용 했 기 때 문 입 니 다.더 많은 PHP 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있다.
본 논문 에서 말 한 것 이 여러분 의 PHP 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
laravel에 yo에서 angularJs&coffeescript를 사용할 수 있도록 한다.먼저 yo 명령을 사용할 수 있어야하므로 아래에서 설치 global에 설치한 곳에서 laravel의 프로젝트 루트로 이동. 클라이언트 코드를 관리하는 디렉토리를 만들고 이동합니다. 클라이언트 환경 만들기 이것으로 히...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.