Frage

Kohana die Konfigurationsdateien wie folgt aussehen .. hier ist ein Beispiel für eine Datenbank-Konfigurationsdatei (vereinfacht)

return array(
    'dbhost' => 'localhost',
    'user'   => 'Tom_Jones'
);

Ich habe auch ein CMS, das die Verbindungsdetails will. Während das CMS einen anderen Benutzer verwendet (mit mehr Rechten), würde Ich mag die beste Art und Weise wissen, diese Datei zu schließen und die Daten aus ihm heraus (um wiederhole mich nicht für den Hostnamen und dbname).

Ich habe nicht von irgendwelchen eleganten Lösungen erdacht noch und noch nicht ausgegraben um Kohana zu sehen, wie sie es tut. Es ist spät Freitag hier so ist es wahrscheinlich wirklich für jeden offensichtlich, außer mir.

Update

Ich entschuldige mich, ich habe vergessen zu schließen, dass dies mit Kohana 3 !

War es hilfreich?

Lösung

In Kohana v3, in der Kohana_Config_Reader Klasse, Methode load():

$config = Arr::merge($config, require $file);

require $file verwendet wird, um das Array in der Konfigurationsdatei zu laden.

Andere Tipps

Ich heruntergeladen Kohana und konnte nicht Dateien, die aussehen wie Ihr Beispiel, aber wenn Sie die aktuelle Version verwenden können Sie die Konfigurationsdateien wie folgt umfunktionieren:

<?php
  // Your script
  define('SYSPATH', 'true'); // So Kohana doesn't kill our script
  $config = array();
  include('path/to/system/config/database.php');

  echo $config['default']['connection']['user']; // Echos database user
?>

http://docs.php.net/function.include sagt:

Außerdem ist es möglich, Werte von den darin enthaltenen Dateien zurückzukehren. Sie können nehmen den Wert der Anruf gehören, als würden Sie eine normale Funktion.

Lassen Sie uns nehmen Sie Beispielcode

<?php // test2.php
return array(
  'dbhost' => 'localhost',
  'user'   => 'Tom_Jones'
);

und ein Skript, das test2.php

enthält
<?php
$cfg = include 'test2.php';
if ( !is_array($cfg) ) {
    // ... add useful error handling here ...
}
// you might want to test the structure of $cfg
// before accessing specific elements
echo $cfg['dbhost'];

druckt localhost.

Die Dokumentation einige grundlegende Informationen enthält, wie Sie diese Konfigurationsdateien zugreifen. Also, wenn Sie die folgende in einer Datei namens db.php in application/config haben:

<?php defined('SYSPATH') or die('No direct script access.');

return array(
    'host' => 'localhost',
    'user'   => 'Tom_Jones'
);

Sie würden sie wie folgt zugreifen:

$options = Kohana::config('db');
echo $options['user'];
echo $options['host'];

Oder wie folgt:

echo Kohana::config('db.user');
echo Kohana::config('db.host');

Oder wie folgt:

echo Kohana::config('db')->user;
echo Kohana::config('db')->host;
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top