Zend Framework 의 간단 한 공장 모델 그림

얼마 전에 ZF 로 사용 해서 블랙박스 로 생각 하 는 게 별로 좋 지 않 았 어 요.소스 코드 를 보고 싶 은 충동 이 있 었 는데...조금씩 보면 도전 이 좀 크다.어느 날 또 오 랜 만 에 디자인 을 복습 할 생각 이 들 었 어 요.종합 적 으로 디자인 모델 을 복습 한 후에 ZF 에서 이 모델 을 사용 하 는 소스 코드 를 찾 아 보 세 요.모든 소스 코드 를 읽 지 않 고'고급'부분 을 읽 어 보 세 요.모델 이 라면 모든 모델 ZF 에 있 는 지 모 르 겠 지만 제 가 최근 에 볼 수 있 는 충분 한 모델 이 있 을 것 입 니 다.다른 오픈 소스 소프트웨어 를 찾 아 모델 을 찾 아 볼 수 있다 고 말 합 니 다.그동안 각종 필기시험 에 엉망 으로 생활 을 어 지 럽 혔 지만 어쨌든 복습 은 필수 다.다시 한 번 말씀 드 리 지만 ZF 의 장점 중 하 나 는 각 component 가 독립 적 이 고 component 간 에 많은 의존 이 없다 는 것 입 니 다.그러면 사용자 에 게 편 의 를 제공 할 수 있 습 니 다.물론 저 처럼 지루 하고 게 으 른 소스 코드 를 보고 싶 은 사람 에 게 도 편 의 를 제공 할 수 있 습 니 다.오늘 은 간단 한 공장 을 살 펴 보 겠 습 니 다.ZF 안에 모델 이 부족 하지 않 고 공장 모델 도 부족 하지 않 습 니 다.유명한 ZendDb 는 간단 한 공장 을 아 끼 지 않 고 사용 합 니 다.그리고 ctrl+h(zend studio 아래)는 factory 가 매우 많다 는 것 을 알 게 될 것 입 니 다.틀 리 지 않 았 다 면 대부분 간단 한 공장 이 었 을 것 입 니 다.왜냐하면 ZendDb 가 가장 자주 사용 하 는데 나 도 자 연 스 럽 게 그의 실현 을 보고 싶 을 것 이다.원본 코드 를 보기 전에 Zend 를 어떻게 사용 하 는 지 복습 해 보 세 요.Db 와 간단 한 공장.간단 한 공장 모델 을 복습 하고 아 날로 그 로 회상 해 보 세 요.간단 한 공장 아 날로 그:
작가 의 그림 을 빌려 클 라 이언 트 가 factory 를 통 해 대상 을 얻 고 Api 구 조 를 통 해 호출 하 는 것 을 볼 수 있다.factory 로 구체 적 인 Api 생 성 을 숨 깁 니 다.다른 모든 사용자 가 사용 할 때 factory 로 만 들 고 Api 구조 호출 을 통 해 간단하게 복습 할 수 있 습 니 다.유 도 를 보면 간단 한 공장 이 떠 오 를 것 이다.왜냐하면 그 자체 가 정말 간단 하기 때문이다.간단 한 공장 복습 을 마치 고 생각 을 조금 뛰 어 넘 고 ZendDb 의 사용.1.복습 ZendDb 의 사용 은 어떻게 사용 해 야 할 지 모 르 면 XXX 의 소스 코드 를 보 려 고 하 는데 XXX 를 어떻게 사용 해 야 할 지 모 르 기 때문에 Zend 를 살짝 살 펴 보 겠 습 니 다.Db 의 사용,아래 부분 은 ZF 공식 문서 에 있 는(개인 적 으로 ZF 문 서 를 좋아 하지 않 습 니 다.Yii 가 읽 기 쉽 지 않 습 니 다)/public/index.phop
 
$db = Zend_Db::factory('Pdo_Mysql', array(
'host' => '127.0.0.1',
'username' => 'webuser',
'password' => 'xxxxxxxx',
'dbname' => 'test'
));
여 기 는 데이터 베 이 스 를 코드 에 배치 하 는 것 입 니 다.가장 간단 해 보 입 니 다.하지만 포 인 트 를 강조 하기 위해 서 는 이 중 가장 쉬 운 방법 을 선택한다.안에 있 는 젠 드 조심 하 세 요Db::factory(‘Pdo_Mysql'...이 단락 에$db(하나의 ZendDb 대상),위의$db 를 사용 하여 다음 과 같이 조회 합 니 다.Db 는 블랙박스 로 사용 합 니 다.다음은 본론 으로 들 어 갈 수 있다.먼저,zend/db.php 의 코드 요약 을 살 펴 보 세 요.Db:factory 에서$db 를 생 성 하 는 곳:
 
$db->setFetchMode(Zend_Db::FETCH_OBJ);
$result = $db->fetchAssoc(
'SELECT bug_id, bug_description, bug_status FROM bugs'
);
factory 방법의 첫 번 째 매개 변 수 는$adapter 가 Pdo 입 니 다.Mysql,여 기 는 Pdo 라 는 것 을 기억 하 세 요.Mysql,다시 점프,위의$adapter Namespace='ZendDb_Adapter';생 성 된$dbAdapter 의 값 을 볼 수 있 습 니 다.최종 값 은:Zend 입 니 다.Db_Adapter_Pdo_Mysql,ok,이 이름 으로 zend/db/adapter/pdo 디 렉 터 리 를 찾 았 습 니 다.하,이렇게 많은 익숙 한 얼굴 들 이 익숙 한 MySql,Mssql,Sqlite 등 오래된 얼굴 들 을 보 았 습 니 다주의 하 세 요.안에 저조 한 Abstract.php 가 있 습 니 다.그 안에 그들의 아버지 류 Zend 가 있 습 니 다.Db_Adapter_Pdo_Abstract。Mysql.php 를 열 면 class Zend 를 볼 수 있 습 니 다.Db_Adapter_Pdo_Mysql extends Zend_Db_Adapter_Pdo_Abstract 응,유형 명 ZendDb_Adapter_Pdo_Mysql 은 위 에서 생 성 된 이름과 똑 같이 떨 어 집 니 다.다른 몇 개의 파일 안의 종 류 를 보고 있 습 니 다.그들 은 모두 Zend 를 계승 합 니 다.Db_Adapter_Pdo_Abstract,아 날로 그 를 그 리 려 면 다음 과 같은 아 날로 그 가 있 을 것 입 니 다이어서 Client 와 공장 함수 가 있 는 위치 Zend 를 추가 합 니 다.Db,이 간단 한 유형 도 는아주 깨끗 한 간단 한 공장 이 이렇게 나 왔 을 것 입 니 다.(간단 한 공장 유형 도 같 지 않 습 니까?그것 은 단지 클래스 의 위치 가 잘 놓 여 있 지 않 기 때문이다.

좋은 웹페이지 즐겨찾기