[英]How to define a global constant available everywhere in the application?
如何定义UPLOAD_DIR
常量(或等效)以便我可以在任何地方使用它?
我尝试将其作为应用程序配置参数
'params'=>array(
'upload_dir'=>Yii::app()->baseUrl . '/images/uploads/',
),
但是Yii::app()->baseUrl
baseUrl cannott可以在配置文件中使用。
你可以在调用Yii::createApplication
和Yii::app()->run()
之前在index.php
执行此操作:
define ('UPLOAD_DIR', Yii::app()->baseUrl . '/images/uploads/');
然后,您将像任何其他PHP常量一样使用它,例如echo UPLOAD_DIR
。
编辑:当我在createApplication
之后和run
之前说过时,我createApplication
意味着(同样,并不是说存在createWebApplication
和createApplication
,它是前者的更通用版本)。
所以,如果你现在有
Yii::createWebApplication(...)->run();
你必须把它拆分成
Yii::createWebApplication(...);
define ('UPLOAD_DIR', Yii::app()->baseUrl . '/images/uploads/');
Yii::app()->run();
另一种选择是将另一个属性添加到您的应用程序类。 例如,如果您在protected/components
目录中有一个class MyApplication
那么您可以这样做:
class MyApplication extends CWebApplication {
// ...other code...
public function getUploadDir() {
return $this->baseUrl.'/images/uploads/';
}
}
然后,您将以Yii::app()->uploadDir
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.