2016-05-02 2 views
-3

У меня есть определенные значения для конкретного хоста. Я поддерживаю различные файлы конфигурации, но теперь мне нужны некоторые из их значений в моем javascript-коде. Как я могу иметь одну конфигурацию для javascript и php?Возможно ли иметь один файл конфигурации для javascript и php?

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

+0

Если все ваши ценности конфигурации содержится в объекте, d, что конфигурация в порядке, чтобы публично раскрываться, вы могли бы просто сделать « ' – blex

+0

Этот вопрос слишком широк. Возможно, вам удастся найти формат, который понимают языки (например, JSON), но настройка зависит от того, как разрабатываются ваши приложения. – ssube

+0

Больше контекста было бы неплохо. Имейте в виду, что PHP работает на сервере, а Javascript работает на клиенте. – treegarden

ответ

1

Если конфигурация содержится в объекте вы можете полностью раскрыть, вы можете просто сделать:

<script>var config = <?php echo json_encode($config); ?>;</script> 

Но если вы хотите/нужны некоторые из его свойств, вы могли бы сделать что-то вроде:

<script>var host = <?php echo $config["host"]; ?>;</script> 

или, в более обслуживаемой образом:

<?php 

$config = array(
    "host" => "http://example.com", 
    "items_per_page" => 10, 
    "db_password" => "1234" 
); 
// Properties you want to include in your JS 
$public_properties = array("host", "items_per_page"); 

// This function returns JSON containing the values from $obj, 
// but only for properties contained in $props 
function get_public_json($obj, $props) { 
    $res = array(); 
    foreach($props as $prop) 
    { 
     $res[$prop] = $obj[$prop]; 
    } 
    return json_encode($res); 
} 

?> 
<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="UTF-8"> 
    <title>My website</title> 
    <script> 
     var config = <?php echo get_public_json($config, $public_properties); ?>; 
     // will look like this: {"host" : "http://example.com", "items_per_page" : 10} 
    </script> 
</head> 
<body> 

</body> 
</html> 
+1

Фантастический. Именно то, что я искал, спасибо. –