출처 : http://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=tipntech&wr_id=74659

 

블로그에서 그림을 포함한 전문을 보실 수 있습니다. http://bit.ly/k87OaL
블로그에도 답글좀 달아주셨으면... ^^;;;
======

환경설정파일 - application.ini
환경설정을 파일 하나로 분리 시켜놓으면, 테스트DB 접속정보나 파일 경로 등 프로젝트 진행 단계에 따라 달라질 수 있는 각종 설정을 한 곳에서 모두 처리할 수 있다는 장점이 있다.

ZF에서 프로젝트를 생성하면 기본적으로 application.ini 파일이 생성되는데, 이 파일을 활용해 환경설정을 할 수 있다. 이 파일의 이름이나 형식은 index.php 에서 변경할 수 있다.

그림 1. index.php 의 Zend_Application 인스턴스 생성 및 실행부분

조금 더 자세히 이야기 하자면, application.ini는 ZF의 부트스트랩 기능을 하는 Zend_Application 에 로드되어 php환경설정, 애플리케이션 환경설정, ZF에 포함된 여러 클래스들의 기본값을 설정할 수 있고, 설정 파일 로드에 Zend_Config를 활용하므로, ini, xml, json, yaml을 지원하고, php 파일 형식도 지원한다.

간단히 Zend_Db에 대해 알아보고, 위의 application.ini를 사용해 실제로 데이터베이스에 연결해보도록 하자.

Zend_Db 개요
Zend_Db 콤포넌트는 ZF의 SQL 데이터 베이스 인터페이스이다. Zend_Db_Adapter는 그 중에서도 기본이 되는 클래스로 접속이나 CRUD 작업을 간편하게 해준다. 이하는 지원하는 DB 목록이다.

PDO를 통해 지원하는 DBMS
IBM DB2 and Informix Dynamic Server (IDS)
MariaDB (pdo_mysql)
MySQL
Microsoft SQL Server
Oracle
PostgreSQL
SQLite
PHP의 확장기능(extensions)를 통해 지원하는 DBMS
MariaDB(mysqli)
MySQL(mysqli, mysql 확장으로는 지원하지 않음)
Oracle
IBM DB2 and DB2 I5
Firebird (Interbase)

Zend_Db_Adapter 초기화
$db = new Zend_Db_Adapter_Pdo_Mysql(array(
'host' => '127.0.0.1',
'username' => 'webuser',
'password' => 'xxxxxxxx',
'dbname' => 'test'
));

Zend_Db_Adapter는 Zend_Db_Adapter_Abstract를 상속받으므로, 기본적인 host, username, password, dbname 과 같은 옵션이름은 다른 DBMS를 접속할 때도 동일하게 사용할 수 있다. 그러나 DBMS에 따라 접속 옵션 등이 달라질 수 있는데, 이는 각각 알아보아야 한다.

위 코드는 php코드로 초기화 시키는 방법이고, 환경설정파일을 통해 초기화를 시켜보도록 하자.

application.ini 의 [production] 섹션 이하에 아래 내용을 추가해보자.

resources.db.adapter = "pdo_mysql"
resources.db.params.host = "localhost"
resources.db.params.username = "webuser"
resources.db.params.password = "XXXXXXX"
resources.db.params.dbname = "test"
resources.db.isDefaultTableAdapter = true

; Optionally you can also the cache template to use for metadata caching:
resources.db.defaultMetadataCache = "database"

환경에 맞게 설정을 변경 후, 모델에서 본격적으로 Zend_Db_Adapter를 활용해보도록 하자.

ps1. 강좌를 너무 오래쉬었군요. 다음 것은 좀 더 빠르게 올릴 수 있도록 노력하겠습니다. :)
ps2. 블로그에 ZF 사용자 포럼(http://elegantcoder.com/zf-forum)을 개설해두었습니다. ZF연구하시는 분들이 함께 공유했으면 좋겠습니다

번호 제목 글쓴이 날짜 조회 수
200 php로excel파일 생성하기 [33] 카츄샤 2012.02.02 22356
199 PHP리디렉션 방법 [2] 카츄샤 2012.02.01 20608
198 php중급강좌 > 이미지 리사이즈 처리를 위한 함수 만들기 [29] MYIP박광춘 2012.01.31 22043
197 php중급강좌 > 원본이미지를 정비율로 리사이즈 처리하기 [7] MYIP박광춘 2012.01.31 26135
196 php중급강좌 > 이미지 처리에 필요한 기본함수 만들기 [2] MYIP박광춘 2012.01.31 20956
195 php중급강좌 > 이미지 복사하기 [2] MYIP박광춘 2012.01.31 21362
194 php중급강좌 > 이미지관련 내장함수 image_type_to_extension, image_type_to_mime_type [1] MYIP박광춘 2012.01.31 17897
193 php중급강좌 > 이미지관련 내장함수 getimagesize [6] MYIP박광춘 2012.01.31 18901
192 사이트를 방문하는 클라이언트의 IP주소 가져오기 [187] 카츄샤 2012.01.30 25591
191 php로 사이트를 방문하는 유저의 OS를 판단하기 프로그램: [3] 카츄샤 2012.01.30 17368
190 웹소스코딩가이드 - 기초 [50] 이건 2012.01.26 20834
189 [IIS 7 초급 1-2] PHP 어플리케이션을 위한 IIS 웹 서비스 설치 및 구성 [197] file MYIP박광춘 2012.01.18 30127
188 [IIS 7 초급 1-1] Microsoft 웹 플랫폼 설치 관리자 [19] file MYIP박광춘 2012.01.17 20397
187 [문법] [초보] IP 중간에 모자이크 처리하기~ [4] 이건 2012.01.17 17640
186 [브라우저] 개발환경에서 브라우저가 스크립트 파일 캐시 못하게 하기. [1] MYIP박광춘 2012.01.16 17683
» [기타] Zend Framework 환경설정파일과 데이터베이스 연결 [8] MYIP박광춘 2012.01.11 19866
184 [DBMS] WHERE 컬럼명 IN (3,1,2) 값의 순서대로 정렬 - ORDER BY FIELD(id, value) [3] MYIP박광춘 2012.01.10 12922
183 [스크립트] url hash 값 파싱과 인코딩입니다. -펌 [14] MYIP박광춘 2012.01.09 13244
182 [xe팁]-외부페이지 직접접속 차단 및 다국어 설정팁 -펌 MYIP박광춘 2012.01.05 15679
181 [xe팁]-IE를 제외한 브라우저에서 첨부파일이 100%에서 사라지는 증세의 해결 [1] MYIP박광춘 2012.01.05 12792