0

Kohana の構成ファイルは次のようになります。データベース構成ファイルの例を次に示します (簡略化)。

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

接続の詳細を必要とするCMSも持っています。CMS は別のユーザー (より多くの権限を持つ) を使用しますが、このファイルを含めてデータを取得する最良の方法を知りたいです (ホスト名とデータベース名を繰り返さないようにするため)。

私はまだ洗練されたソリューションを考えていませんし、Kohana を掘り下げてそれがどのように機能するかを確認していません。ここは金曜日の遅い時間なので、私以外の誰もが知っていることでしょう。

アップデート

申し訳ありませんが、これがKohana 3を使用していることを含めるのを忘れていました。

4

4 に答える 4

1

http://docs.php.net/function.includeによると:

また、インクルードされたファイルから値を返すことも可能です。通常の関数と同じように、include呼び出しの値を取得できます。

サンプルコードを見てみましょう

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

およびtest2.phpを含むスクリプト

<?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'];

印刷しlocalhostます。

于 2010-01-15T11:22:25.477 に答える
1

私はKohanaをダウンロードしましたが、あなたの例のようなファイルはできませんでしたが、現在のバージョンを使用している場合は、次のように構成ファイルを再利用できます。

<?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
?>
于 2010-01-15T06:59:03.997 に答える
1

Kohana v3 では、Kohana_Config_Readerクラスの method load():

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

require $file構成ファイルに配列をロードするために使用されます。

于 2010-01-15T13:10:16.950 に答える
0

ドキュメントには、これらの構成ファイルへのアクセス方法に関する基本的な情報が含まれています。したがって、 in というファイルに次のものが含まれていると db.phpapplication/configます。

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

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

次のようにアクセスします。

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

またはこのように:

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

またはこのように:

echo Kohana::config('db')->user;
echo Kohana::config('db')->host;
于 2010-03-16T16:09:08.010 に答える