如何将全局常量添加到应用程序中


How to add a global constant to the application?

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

这就是Yii文档中所说的

Yii是一个提供通用框架功能的助手类。

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

我应该如何写我自己的Yii类,我应该把它放在哪里,我应该叫它在哪里?

您可以在相当多的地方定义全局常量,这些常量将在请求处理过程中自动定义;选择取决于什么最合理。您的选择包括:

  1. index.php入口脚本——常量将在整个应用程序中可用
  2. 配置文件,在您编写return array(...)之前——常量将在整个应用程序中可用,但在调用Yii::createApplication(或等效的createWebApplication)之前不可用
  3. 应用程序类定义本身(其中它们也可以是类常量,而不是全局常量)。同样,只有在条目脚本中调用createApplication之后,这些常量才可用

如果你想定义一个像YII_DEBUG一样普遍适用的常数,你应该像Yii那样做,并选择选项#1。

这取决于你想用这个类做什么。最简单的方法是在vendor文件夹中设置你的新类文件,并将其称为myclass.php。然后,你需要确保在config/main.php文件中选择vendor文件夹,如下所示:

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

最后,您应该能够在应用程序的任何地方调用您的新类,如下所示:

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

当然,还有其他方法可以做到这一点。根据你希望自定义类做什么,你可能最好使用不同的方法,但这种方法肯定会让你快速运行。