나는 'init.php'파일을 가지고있어. 이것은 세션을 시작하고, 일부 설정과 그런 종류의 것들을 설정하는 데 사용됩니다. 나는이 줄을 사용하여이 파일에 전화 : 이것은 내 의견으로는 완벽하게 작동무엇이 가장 좋은 방법은 설정 파일을 편집하는 것입니다 PHP에서
require_once 'core/init.php';
. 이제 다음 스크립트를 작성하여 init.php 파일에서 설정을 호출하는 것이 매우 쉬워졌습니다.
Config::get('settings/main_color')
이 물론 매우 쉽습니다 :
class Config {
public static function get($path = null) {
if ($path){
$config = $GLOBALS['config'];
$path = explode('/', $path);
foreach($path as $bit) {
if(isset($config[$bit])) {
$config = $config[$bit];
}
}
return $config;
}
return false;
}
}
그래서 지금은 설정을 사용하는 내 다른 페이지에 코드 줄을 사용할 수 있습니다. 하지만 이제 파일을 직접 변경하지 않고도 설정을 편집하고 싶습니다. 브라우저에서 스크립트로 모두 수행해야합니다. 내 init.php의 나머지는 다음과 같이 글로벌 외모를 설정 :
Config::update('settings/main_color','blue')
이를 달성하는 가장 좋은 방법은 무엇입니까 :
$GLOBALS['config'] = array(
'mysql' => array(
'host' => 'localhost:3307',
'username' => 'root',
'password' => 'usbw',
'db' => 'webshop'
),
'remember' => array(
'cookie_name' => 'hash',
'cookie_expiry' => 604800
),
'sessions' => array(
'session_name' => 'user',
'token_name' => 'token'
),
'settings' => array(
'main_color' => '#069CDE',
'front_page_cat' => 'Best Verkocht,Populaire Producten',
'title_block_first' => 'GRATIS verzending van €50,-',
'title_block_second' => 'Vandaag besteld morgen in huis!',
),
'statics' => array(
'header' => 'enabled',
'title_block' => 'enabled',
'menu' => 'enabled',
'slideshow' => 'enabled',
'left_box' => 'enabled',
'email_block' => 'enabled',
'footer' => 'enabled',
'keurmerken' => 'enabled',
'copyright' => 'enabled'
)
);
내가 바라는 것은이 같은 솔루션은? str_replace를 사용하고 파일의 단어를 바꿉니 까? 이 일을하는 더 좋은 방법이 있기를 바랍니다. 나를 도울 수 있다면 매우 기쁠 것입니다.
편집 : (내 전체 init.php 파일)
<?php
session_start();
define('DS',DIRECTORY_SEPARATOR);
$GLOBALS['config'] = json_decode(__DIR__.DS.'prefs.json', true);
spl_autoload_register(function($class) {
require_once 'classes/' . $class . '.php';
});
require_once 'functions/sanitize.php';
require_once 'functions/statics.php';
require_once 'functions/pagination.php';
if(Cookie::exists(Config::get('remember/cookie_name')) && !Session::exists(Config::get('sessions/session_name'))) {
$hash = Cookie::get(Config::get('remember/cookie_name'));
$hashCheck = DB::getInstance()->get('users_session', array('hash', '=', $hash));
if($hashCheck->count()) {
$user = new User($hashCheck->first()->user_id);
$user->login();
}
}
$_link = DB::getConnected();
$url_parts = explode('/',$_SERVER['REQUEST_URI']);
$current = $url_parts[count($url_parts)-2];
if($current == 'page'){
$_SESSION['location'] = 1;
}
else{
$_SESSION['location'] = 0;
}
그리고 너 알지? 그녀의 방식으로 JSON을 사용하지 않고? –
XML 파일이지만 Json은 더 간단합니다 – Rasclatt
하지만 get() 함수를 사용할 때이 메서드 (JSON)가 여전히 작동합니까? –