CakePHP의 설정 클래스
Configuration 클래스
CakePHP에서 몇 가지 설정이 필요함에도 불구하고, 설정은 가끔은 사용자 어플리케이션을 위해서는 사용자의 설정 룰을 따르는 것이 유용할 때가 있다. 사용자 설정은 변수 또는 상수를 정의해서 사용한다. 이들 변수나 상수를 사용할 때마다 설정 파일을 포함해야 한다.
CakePHP의 새로운 Configure 클래스는 어플리케이션이나 실행시에 특정값을 저장하고, 읽을 수 있다. 이 클래스에는 무엇이든지 저장할 수 있으므로 주의가 필요하다. 이 클래스의 사용은 일반 코드와 다른 곳에서 하는 것이 좋다. Configure 클래스의 주된 목적은 여러 object에서 공동으로 사용하는 변수를 한 곳에 집중하는 데 있다.
configure 클래스는 singleton으로 행동한다, 이 클래스의 method는 어플리케이션의 어디에서건 호출할 수 있다.
Configure Methods
write
write() 함수는 어플리케이션의 설정에서 데이터를 저장하기 위해서 사용한다.
Configure::write(‘Company.slogan’, ‘Pizza for your body and soul’);
$key 파라미터에서 dot을 사용하는 것에 유의하라. 이를 사용하면 설정을 논리 그룹으로 관리할 수 있다.
다음과 같이 한번에 호출할 수도 있다.
‘Company’.array(‘name’ => ‘Pizza, Inc.’, ‘slogan’ => ‘Pizza for your body and soul’)
);
Configure::write(‘debug’, $int) 를 사용하여 debug 모드와 프로덕션 모드를 스위치할 수 있다.
read
어플리케이션에서 설정데이터를 읽을 때 사용한다. key를 지정하면, key에 대한 데이터를 반환한다. 위에서 write()로 함수로 설정한 key를 읽으려면 다음과 같이 한다.
Configure::read(‘Company.slogan’);
Configure::read(‘Company’);
array(‘name’ => ‘Pizza, Inc.’, ‘slogan’ => ‘Pizza for your body and soul’)
delete
설정에서 해당 key에 관한 정보를 삭제한다.
load
load는 파일로부터 설정 데이터를 읽는다.
<?php
$config[‘Company’][‘name’] = ‘Pizza, Inc.’;
$config[‘Company’][‘slogan’] = ‘Pizza for your body and soul’;
$config[‘Company’][‘phone’] = ‘555-5555-5555’;
?>
<?php
Configure::load(‘messages’);
Configure::read(‘company.name’);
?>
먼저 messages.php 파일에서 $config 배열에 key-value 쌍으로 설정 값을 미리 설정해놓았다. 이를 load() 함수를 사용하여 읽었다. load() 함수로 읽으면 이 전에 설정한 값은 load()로 읽은 것으로 대체된다.
CakePHP의 core 설정 변수
Configure 클래스는 core CakePHP 설정 변수를 관리하기 위해서 사용한다. 이들 변수는 /app/config/core.php 에 있다.
-------------------------------------------------------------------------
debug | CakePHP의 디버깅 출력을 변경한다.
| 0 : 프로덕션 모드다. 디버깅 출력을 하지않는다.
| 1 : error, warning을 출력한다.
| 2 : error, warning, SQL을 출력한다.
| 3 : error, warning, SQL, 콘트롤러 덤프를 출력한다.
App.bakeUrl | apache 웹 서버의 mod_rewrite를 사용하지 않는다면
| 이 설정을 활성화해야 한다.
| 그리고 .htaccess 파일도 삭제해야 한다.
Routing.admin | CakePHP의 admin route의 장점을 사용하지 않을 거라면
| 이 설정을
Cache.disable | true로 설정하면, 사이트 전체에 캐싱을 사용하지 않는다.
Cache.check | true로 설정하면, view 캐싱을 가능하게 한다.
| 캐싱을 가능하게 하는 것은 콘트롤러를 필요로 한다,
| 하지만 이 변수는 콘트롤러의 설정을 검사한다.
Session.save | CakePHP가 Session을 위한 저장장소로 어떤 것을 사용할
| 것인지를 결정한다.
| php : PHP의 session 저장장소를 이용한다.
| cake : /app/tmp 에 저장한다.
| database:session 데이터를 데이터베이스 테이블에 저장한다.
| /app/config/sql/sessions.sql 의 SQL을 이용하여 테이블을
| 생성해야 한다.
Session.table | session 정보를 저장하는 테이블 이름을 지정한다.
Session.database | session 정보를 저장하는 데이터베이스
Session.cookie | session을 추적하는데 사용할 cookie 이름
Session.timeout | 기본 session timeout. 초로 표현한다.
| 실제 값은 Security.level에 의존한다.
Session.start | true로 설정하면 session은 자동으로 시작한다.
Session.checkAgent | false로 설정하면, CakePHP session은 브라우저가
| requests 사이에 바뀌었는지를 검사하지 않는다.
Security.level | CakePHP 보안 등급. Session.tiemout에서 정의한 Session
| timeout은 이 값에 따라 다음과 같이 곱해서 사용한다.
| high = x 10
| medium = x 100
| low = x 300
Security.salt | security hashing에 사용하는 무작위 문자열
Acl.classname, | CakePHP의 Access Control List 기능을 위해서
Acl.database | 사용되는 상수
Configure 클래스는 실행시에 core 설정의 세팅을 읽거나 쓸 수 있다. 어플리케이션의 제한적인 부분에서 디버그 옵션을 바꾸거나 할 때 사용할 수 있다.
'웹 개발' 카테고리의 다른 글
MySQL 5.1이 릴리즈되었습니다. (0) | 2008.12.09 |
---|---|
저명한 인터넷 리더와 함께 웹 기술 동향 및 미래를 만나 보십시오! (0) | 2008.06.04 |
Zmanda 복구 관리자로 MySQL 테이블 복구 (0) | 2008.05.15 |
CakePHP에서 데이터베이스 설정 (0) | 2008.05.15 |
CakePHP의 설치 (0) | 2008.05.15 |