2012-12-04 215 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; 

希望能有所幫助。