如何向应用程序添加全局常量?

时间:2013-02-06 13:18:47

标签: php yii

我想添加一个像YII_DEBUG这样的应用程序常量。我发现它应该在YiiBase类中定义。但我不知道最好的方法是什么。

这是Yii文档所说的

  

Yii是一个辅助类,提供常见的框架功能。

     

它封装了YiiBase,它提供了实际的实现。通过编写自己的Yii类,您可以自定义YiiBase的一些功能。

我应该如何编写自己的Yii课程,我应该把它放在哪里以及我应该在哪里调用它?

2 个答案:

答案 0 :(得分:1)

您可以在很多地方定义全局常量,这些常量会在请求处理期间自动定义;选择取决于什么是最有意义的。您的选择包括:

  1. index.php entry script - 常量将在整个应用中使用。
  2. configuration file,在您编写return array(...)之前 - 常量将在整个应用中使用,但不会在调用Yii::createApplication(或等效的createWebApplication之前)。< / LI>
  3. 应用程序类定义本身(其中它们也可以是class constants而不是全局常量)。同样,只有在输入脚本中调用createApplication后,常量才可用。
  4. 如果你想定义一个普遍适用于YII_DEBUG的常量,你应该像Yii那样做,并选择#1选项。

答案 1 :(得分:0)

这取决于你正在尝试用这个类顶部确定最佳实践。最简单的方法是在vendors文件夹中设置新的类文件并调用它,无论如何,myclass.php。然后,您需要确保在config / main.php文件中选择vendor文件夹,如下所示:

Yii::import('application.vendors.*');
require_once('myclass.php');

最后,您应该能够从应用程序中的几乎任何位置调用您的新类,如下所示:

$myclass = new myclass();
$myclass->thisMethod();

当然,还有其他方法可以做到这一点。根据您希望自定义类执行的操作,您可能最好使用不同的方法,但这样一定会让您快速启动并运行。