2016-12-25 13 views
0

Я не так много знаю о php. У меня есть 3 файла в моем проекте.замените строковое значение в config.php

1st one is system.php, которые содержат логику приложения отверстия. здесь его код:

<?php 
    require "config/config_system.php"; 

    $config = new Config; 
    $config-> load('config.php'); 
// this is way i want to change setting. 
    echo $config-> replace("db.host" , "replace value"); 
?> 

второй один config_system.php, который содержит конфигурацию logic.here свой код:

<?php 

    class Config { 

     protected $data; 
     protected $informaton; 

     protected $default; 

     public function load($file) { 

      $this->data = require $file; 
      $this->informaton = require $file; 

     } 

     public function find($key, $default = null) { 

      $this->default = $default; 

      $segments = explode(".", $key); 

      $data = $this->data; 

      foreach ($segments as $segment) { 
       if (isset($data[$segment])) { 
        $data = $data[$segment]; 
       } else { 
        $data = $this->default; 
        break; 
       } 
      } 

      return $data; 

     } 

     public function exists($key) { 

      return $this->find($key) !== $this->default; 

     } 

// this is the function i am trying to make valide 
     public function replace($value) { 

      $arrayvalues = explode(".", $value); 

      $informaton = $this->informaton; 

      foreach ($arrayvalues as $arrayvalue) { 
       if (isset($informaton[$arrayvalue])) { 
        $informaton = $informaton[$arrayvalue]; 
       } 
      } 

      return $arrayvalues; 

     } 
    } 
?> 

и третий один является config.php, который содержит конфигурации.

<?php 

    return [ 
     "installation"  => [ 
           // this is the value I want to change via a function to true. 
      "create_db"   => "false", 
      "create_table"  => "false" 

     ], 
     "db"    => [ 
      "host"    => "localhost", 
      "user_name"   => "root", 
      "password"   => "" 
     ] 
    ]; 

?> 

Теперь я хочу изменить некоторые настройки с помощью функции. Как мне это сделать?

ответ

0
public function replace ($keyset, $value){ 
$key_parse = explode(".",keyset); 
$this->data[$key_parse[0]][$key_parse[1]] = $value; 
return $this->data; 
} 

Используйте эту функцию в вашем config_system.php

+0

Hay спасибо за ответ. но функция показывает ошибку. explode() ожидает как минимум 2 параметра – sohidulpaltan

+0

извините за типовую ошибку .. Это –