Пользовательские глобальные переменные PHP - PullRequest
0 голосов
/ 02 марта 2011

Каков наилучший способ создания переменных, которые можно использовать из файла в файл и даже из объекта в объект?Пример:

Файл настроек будет содержать такой массив:

<?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;
      }
   }
}
?>

Ответы [ 2 ]

5 голосов
/ 02 марта 2011

Лучшим способом было бы использовать define() в вашем конфигурационном файле PHP и включить его по всему сайту. Это защитит вас от случайного перезаписи значения в вашей конфигурации.

Однако проблема в том, что массивы не допускаются. Разрешены только скалярные и нулевые значения.

Альтернативой этому было бы использование файла конфигурации в сочетании со статическим классом. Только статический класс должен иметь прямой доступ к файлу, и вы можете использовать класс для получения значений.

CakePHP и Zend (среди прочих) используют этот метод

0 голосов
/ 02 марта 2011

Просто определите некоторые массивы / переменные в config.php и include во всех ваших phps, если вам нужны только глобальные свойства конфигурации сайта (такие как имя пользователя и пароль для базы данных, путь для сохранения загруженных файлов и т. П. ).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...