2012-12-04 173 views
0

我正在开发一个使用Yii的社交网站。虽然经常使用以下内容,但我遇到了很大的数据可管理性问题。 - 用户ID - 当前用户ID(用户哪个配置文件是所有者查看) - 是所有者?Yii全局变量和设置问题

我可以在哪里定义这些东西。 我会像

if(Yii::app()->owner==ME){ 
//do something 
} 
// and similarly 
if($this->isMyFreind(<Current user ID>){ 
} 
// $this(CanIView()){ 

} 

我想这些功能对任何网页是公开的?但是如何? 换句话说 我在哪里可以放入我自己喜欢的功能,如文本缩短,图像裁剪,日期时间格式等我的图书馆?

+0

所以我的回答被一个主持人删除,虽然它被2个upvotes接受。没有理由。离开这个网站的时间。 – adamors

回答

1

按照MVC模型调用Yii::app()->request->baseUrl,像图像裁剪或日期时间格式会去车型。你可以简单地为此创建模型。

0

我通常用我所有的常用功能 在index.php一个globals.php文件(YIP的一个根):

$globals='protected/globals.php'; 
require_once($globals); 

然后我可以叫我的全局函数的任何地方。例如,我缩短某些Yii的功能,如:

function bu($url=null){ 
    static $baseUrl; 
    if ($baseUrl===null) 
     $baseUrl=Yii::app()->request->baseUrl; 
    return $url===null ? $baseUrl : $baseUrl.'/'.ltrim($url,'/'); 
} 

所以我就可以通过简单地调用bu()

+0

我想这不是“Yii的方式”来存储全球数据 –

+0

是啊,真的..... –

3

Yii中,你可以通过一个类(受保护/精铸件下)就实现这个它继承

CApplicationComponent

类。然后你把这个类的任何属性作为一个组件全局调用。

class GlobalDef extends CApplicationComponent { 
public $aglobalvar; 
} 

定义这个类中主要配置下的组件:

'globaldef' => array('class' => 'application.components.GlobalDef '), 

你可以这样调用:

echo Yii::app()->globaldef->aglobalvar; 

希望能有所帮助。