0

Kohana 的配置文件如下所示.. 这是数据库配置文件的示例(简化)

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

我还有一个需要连接详细信息的 CMS。虽然 CMS 使用不同的用户(具有更多权限),但我想知道包含此文件并从中获取数据的最佳方法(以免重复自己的主机名和数据库名)。

我还没有想出任何优雅的解决方案,也还没有在 Kohana 周围挖掘,看看它是如何做到的。这里是星期五晚些时候,所以除了我以外的每个人都可能很明显。

更新

抱歉,我忘了包括这是使用Kohana 3

4

4 回答 4

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

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 v3 中,在Kohana_Config_Reader类中,方法load()

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

require $file用于加载配置文件中的数组。

于 2010-01-15T13:10:16.950 回答
0

文档包含有关如何访问这些配置文件的一些基本信息。因此,如果您在名为 db.phpin的文件中有以下内容application/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 回答