Kohana的配置文件如下所示..这是一个数据库配置文件(简化)的示例
return array(
'dbhost' => 'localhost',
'user' => 'Tom_Jones'
);
我还有一个想要连接细节的CMS。虽然CMS使用不同的用户(拥有更多权限),但我想知道包含此文件并从中获取数据的最佳方式(以便不重复自己的主机名和dbname)。
我还没有想到任何优雅的解决方案,还没有挖掘Kohana,看看它是如何做到的。这是星期五晚上,所以除了我以外,每个人都可能很明显。
我道歉,我忘了说这是使用Kohana 3!
答案 0 :(得分: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
?>
答案 1 :(得分:1)
http://docs.php.net/function.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
。
答案 2 :(得分:1)
在Kohana v3中,在Kohana_Config_Reader
类中,方法load()
:
$config = Arr::merge($config, require $file);
require $file
用于在配置文件中加载数组。
答案 3 :(得分:0)
documentation包含有关如何访问这些配置文件的一些基本信息。因此,如果您在db.php
中名为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;