Kohana的常数

时间:2011-02-02 23:14:47

标签: php codeigniter kohana

我过去曾使用过codeigniter,但在我目前的项目中,我正在转向Kohana。常数的最佳实践是什么?

在codeigniter中有实际的constants.php,但是通过Kohana的来源我没有看到类似的东西。

3 个答案:

答案 0 :(得分:2)

从未使用kohana,但经过快速谷歌搜索后,我发现您可以使用config API创建自己的配置,以容纳您需要的常量。

This thread建议如果您要存储数据库敏感项,将它们放在database.php配置等中。使它们相对于它们存储的数据类型。

答案 1 :(得分:1)

我熟悉Kohana,但不熟悉CI,所以我猜错了你的意思。'常数。'我相信最接近这一点的确是Kohana的配置API。因此,如果您想让模板知道某些网站范围内的常量,例如您的网站名称,那么使用配置API是件好事。

要实现此目的,您需要在/ config文件夹下创建一个配置文件,可能位于/ application目录中。你所谓的它并不重要,但由于它包含网站信息,我们称之为site.php。

要快速开始,这就是您希望在该文件中拥有的内容:

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

return array(
    // Your site name!
    'name' => 'Oh me, Oh my',
);

现在,您可以通过执行以下操作将其带入模板:     

更好的方法(使用哑模板)将在控制器中将其指定为模板变量。因此,假设您设置了一些默认控制器,代码将为:

public function action_index() {

    $this->template->site_name = Kohana::config('site.name');

}

然后你的模板会有这样的东西:

<title><?php echo $site_name; ?></title>

Kohana的配置API非常有趣,因为它是分层的,这意味着您可以在现有配置结构的基础上覆盖和合并新的配置值。当您调用Kohana::config('site.name')时,引擎会查看名为site.php的所有配置文件,运行所有这些配置文件并将结果合并到一个数组中。应用程序级配置文件将覆盖模块,这将覆盖系统等...然后,基于该结果数组,Kohana将尝试查找名称&#39;键并返回。

答案 2 :(得分:0)

假设你想要全局常量......以下对我来说效果很好。

应用/配置/ constants.php:

define('MY_COOL_CONSTANT', 'foo');
return array();

的index.php:

Kohana::$config->load('constants');

MY_COOL_CONSTANT应该全球可用。