在Codeigniter中定义应用程序常量

时间:2012-05-08 07:17:53

标签: php codeigniter

我想知道在Codeigniter中定义应用程序常量的简洁方法。我不想更改codeigniter的任何本机文件。因此我不想在application/config/constants.php中定义它,因为当我需要迁移到更新版本的代码点火器时,我将无法直接复制codeigniter的本机文件。

我创建了一个文件application/config/my_constants.php并在那里定义了我的常量。 'define('APP_VERSION','1.0.0');'

我使用$this->load->config('my_constants');

加载了它

但我收到错误

Your application/config/dv_constants.php file does not appear to contain a valid configuration array.

请建议我在代码点火器中定义应用程序级常量的简洁方法。

6 个答案:

答案 0 :(得分:35)

不使用application/config/constants.php是胡说八道!这是你应该放置常量的唯一的地方。如果您担心升级,请不要更改system中的文件。

答案 1 :(得分:4)

只是一个完整的答案。 (没有答案显示如何使用声明的常量)

这个过程很简单:

  1. 定义常量。打开config/constants.php并添加以下行:

    define('SITE_CREATOR', 'John Doe')

  2. 使用以下方法在另一个文件中使用此常量:

    $myVar = 'This site was created by '.SITE_CREATOR.' Check out my GitHub Profile'

答案 2 :(得分:2)

而不是使用define(),my_constants.php文件看起来应该是这样的:

$config['app_version'] = '1.0.0';

注意命名数组键,但不要与任何内容冲突。

如果您需要使用define(),我建议您在主index.php文件中执行此操作,但仍需要使用APP_VERSION来获取值。

答案 3 :(得分:0)

    config file (system/application/config/config.php) to set configuration related variables.

    Or use 

    constant file (system/application/config/constants.php) to store site preference constants.


  =======================
  DEFINE WHAT YOU WANT
  =======================
  $config['index_page'] = 'home';
  $config['BASEPATH'] = 'PATH TO YOUR HOST';

答案 4 :(得分:0)

请参阅:

http://ellislab.com/forums/viewthread/56981/

将变量定义为常量和&在数组上添加值

$ORDER_STATUS  = array('0'=>'In Progress','1'=>'On Hold','2'
                 =>'Awaiting Review','3'=>'Completed','4'
                 =>'Refund Requested','5'=>'Refunded');

答案 5 :(得分:0)

您可以通过向自己的配置文件添加常量来实现目标,例如my_config.php

您可以将此文件保存在application/config文件夹中,如下所示: application/config/my_config.php

为您编写的每个应用程序都有一个单独的配置文件是很常见的,因此这很容易维护并被其他CI程序员理解。

您可以指示CI自动加载此文件,也可以根据需要手动加载。请参阅" Config class"。

上的CI手册