PHP가 4개의 구성 파일(php, ini, yaml, xml)을 읽는 예입니다. 코드는 다음과 같습니다. 언젠가 직접 사용해 볼 수 있을 것입니다.
-
-
/** - * 4에서 구성된 테이블 정보 읽기, 이제 php.ini, xml.yaml 지원
- */
- 클래스 설정{
- var $_settings = array();
- /**
- * 일부 설정 값 가져오기
- *
- * @paramknown_type $var
- * @returnunknown
- */
- function get($var) {
- $var =explod('.', $var);
- < ;피> $result = $this->_settings;
- foreach ($var as $key) {
- if (!isset($result[$key])) { return false; }
$result = $result[$key];
- }
$result;
반환 // Trigger_error ('아직 구현되지 않음', E_USER_ERROR);//引发一个错误
- }
function load() {
- Trigger_error ('아직 구현되지 않음', E_USER_ERROR);
- }
- }
/**
- * PHP 구성의 경우 구성 파일이 있는 경우
- * $file=
-
- $db = array();
/ / 여기에 데이터베이스 이름을 입력하세요:
- $db['name'] = 'test';
// MySQL 서버의 호스트 이름을 입력하세요:
- $db [ 'host'] = 'localhost';
?>
특정 호출:
- include ('settings.php' ) ; //원래 환경에서는 각 클래스가 별도의 클래스 이름이라고 가정합니다.php 파일
// 설정 로드(PHP)
- $settings = new Settings_PHP;
- $ settings->load('config.php');
echo 'PHP: ' . $settings->get('db.host') '';< /p>
*
- */
- 클래스 설정_PHP 확장 설정 {
- function load ($file) {
- if (file_exists($file) == false) { return false; }
// 파일 포함
- include($file);
- unset($file); //정의된 수량
- $vars = get_define_vars(); //이용률이 매우 높음员数组中去.
- foreach($vars $key => $val) {
- if ($key == 'this') continue;
$this->_settings[$key] = $val;
- }
- }
- }
//////////// /////////读取INI文件,主要用到parser_ini_file函数,该函数返回一个数组,如第二个参数为true时则返回多维数组/////////// /////////
- /**
- * ini例子:
- * [db]
- name = test
- host = localhost
- 调사용例子:
- $settings = new Settings_INI;
- $settings->load ('config.ini');
- echo 'INI: ' . $settings->get('db.host') . '';
*
- */
- 클래스 설정_INI 확장 설정 {
- function load ($file) {
- if (file_exists($file) = = 거짓) { 거짓을 반환; }
- $this->_settings =parse_ini_file($file, true);
- }
- }
/////////// //////////读取XML文件,需要用到XML_PARSER////////////////////////
- /**
- * XML 형식:
-
-
- test
- localhost
-
- 调用例子:
- // 설정 로드(XML)
- $settings = 새 설정_XML;
- $settings->load('config.xml');
- echo 'XML: ' . $settings->get('db.host') . '';
- *
- */
- 클래스 설정_XML 확장 설정 {
- 함수 로드($file) {
- if(file_exists($file) == false) { return false; }
/**xmllib.php는 PHP XML 라이브러리 버전 1.2b입니다. 관련 링크: http://keithdevens.com/software/phpxml
- xmllib.php의 주요 기능은 배열을 xml로 변환하거나 xml을 배열로 변환하는 것입니다.
- XML_unserialize: xml을 배열로 변환
- XML_serialize: 배열을 xml로 변환
- PHP5 이후로 simpleXML은 매우 좋지만, 여전히 xml을 배열로 변환하는 기능을 지원하지 않으므로 xmlLIB 그래도 아주 좋습니다.
- */
- include ('xmllib.php');
- $xml = file_get_contents($file);
- $data = XML_unserialize($xml);
- $this->_settings = $data['settings'];
- }
- }
- /////////////////////////////////YAML 형식 파일 읽기//////// //////////////////////////////////////
- /**
- YAML을 사용하려면 SPYC 라이브러리를 사용해야 합니다. 관련 링크는 http://spyc.sourceforge.net/
- YAML 구성 예:
- db:
- 이름: test
- 호스트: 로컬호스트
- * /
- 클래스 설정_YAML 확장 설정 {
- function load ($file) {
- if (file_exists($file) == false) { return false }
include ('spyc.php');
- $this->_settings = Spyc::YAMLLoad($file);
- }
- }
-
코드 복사
|