如何定义应用程序中随处可用的全局常量?

时间:2012-04-25 11:22:12

标签: php yii

如何定义UPLOAD_DIR常量(或等效)以便我可以在任何地方使用它?

我尝试将其作为应用程序配置参数

'params'=>array(
            'upload_dir'=>Yii::app()->baseUrl . '/images/uploads/',
),

但在配置文件中使用Yii::app()->baseUrl cannott。

1 个答案:

答案 0 :(得分:12)

您可以在致电index.php之前和Yii::createApplication之前Yii::app()->run()内完成此操作:

define ('UPLOAD_DIR', Yii::app()->baseUrl . '/images/uploads/');

然后,您可以像使用任何其他PHP常量一样使用它,例如echo UPLOAD_DIR

修改:当我在createApplication之后和run之前说过时,我的确意味着(同样,并非同时存在createWebApplication和{{ {1}},这是前者的更通用版本。

所以如果你现在有

createApplication

你必须把它分成

Yii::createWebApplication(...)->run();

另一个选择是将另一个属性添加到您的应用程序类。例如,如果Yii::createWebApplication(...); define ('UPLOAD_DIR', Yii::app()->baseUrl . '/images/uploads/'); Yii::app()->run(); 目录中有class MyApplication,那么您可以执行此操作:

protected/components

然后,您将以class MyApplication extends CWebApplication { // ...other code... public function getUploadDir() { return $this->baseUrl.'/images/uploads/'; } }

的形式访问此内容