如何定义一个UPLOAD_DIR
常数(或等效值),以便我可以在任何地方使用它?如何定义应用程序中随处可用的全局常量?
我想这为应用程序的配置参数
'params'=>array(
'upload_dir'=>Yii::app()->baseUrl . '/images/uploads/',
),
但Yii::app()->baseUrl
cannott配置文件内使用。
如何定义一个UPLOAD_DIR
常数(或等效值),以便我可以在任何地方使用它?如何定义应用程序中随处可用的全局常量?
我想这为应用程序的配置参数
'params'=>array(
'upload_dir'=>Yii::app()->baseUrl . '/images/uploads/',
),
但Yii::app()->baseUrl
cannott配置文件内使用。
你可以做到这里面index.php
,呼叫后Yii::createApplication
和Yii::app()->run()
前:
define ('UPLOAD_DIR', Yii::app()->baseUrl . '/images/uploads/');
你会再使用它就像任何其他的PHP常量,例如echo UPLOAD_DIR
。
编辑:当我createApplication
后表示和run
之前,我的意思正是(也,不存在既是createWebApplication
和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/';
}
}
你会再访问此为Yii::app()->uploadDir
。
索引文件中的define()不起作用我在Yii :: createWebApplication($ config) - > run();之后尝试了它。 – safiot 2012-04-25 11:52:48
在我的保护/组件中,只有UserIdentity.php和Controller.php – safiot 2012-04-25 11:57:13
@safiot:请参阅编辑。如果您有一个*,则应用程序类位于'/ protected/components' *内部;否则你需要自己创建*和*你需要使用'createApplication'而不是'createWebApplication'。 – Jon 2012-04-25 11:58:09
你在这里混合目录和URL路径。最佳做法是定义它们两个。 路径也可以使用别名创建,但这必须是您的惯例。 – schmunk 2012-04-25 12:27:24