2011-03-02 3 views
0

파일에서 파일까지 사용할 수 있고 객체에 객체로 사용할 수있는 변수를 만드는 가장 좋은 방법은 무엇입니까? 예 : 설정 파일이이 같은 배열 포함됩니다PHP 커스텀 글로벌 변수

: 당신이 필요로하는 모든 글로벌 사이트 구성 특성 경우 모든 phps에

<?php 
$config = array(
      'key1' => 'val1', 
      'key2' => 'val2' 
); 
?> 


<?php 
class config { 
    function get_data($file){ 
     require_once('config/'.$file.'.php'); 
     foreach($config as $key => $val){ 
      $this->$key = $val; 
     } 
    } 
} 
?> 
+0

정말 변수 사용법에 따라 다릅니다. 세션/쿠키/DB 저장 공간 등을 사용할 수 있습니다. 변수의 사용법이나 사용법을 알려주십시오. –

+0

[읽기 및 쓰기 구성 파일] (http://stackoverflow.com/questions/2237291/reading-and-writing-configuration-files) – Gordon

답변

0

그냥 config.php 일부 배열/변수를 정의하고 include를 (예 : 데이터베이스에 대한 사용자 이름 및 암호, 업로드 된 파일을 저장하는 경로 등).

5

가장 좋은 방법은 define()을 PHP 구성 파일에 사용하고 사이트 전체에 포함시키는 것입니다. 이렇게하면 실수로 설정 값을 덮어 쓰지 않게됩니다.

그러나이 문제는 배열이 허용되지 않는다는 것입니다. 스칼라 및 널 값만 허용됩니다.

정적 클래스와 함께 설정 파일을 사용하는 대신이 방법을 사용할 수 있습니다. 정적 클래스 만 파일에 직접 액세스해야하며 클래스를 사용하여 값을 가져올 수 있습니다.

CakePHP와 Zend (기타 중)는이 방법을 사용합니다.

+0

여러 가지 중에서 가능한 많은 복사본입니다. config 파일 + 정적 클래스는 훌륭하고 광범위한 솔루션입니다. – glomad

+1

@ithcy 통계는 널리 퍼져 있지만 "좋은"것은 아닙니다. http://misko.hevery.com/code-reviewers-guide/flaw-brittle-global-state-singletons/ – Gordon