2012-12-04 2 views
0

저는 Yii를 사용하여 소셜 네트워킹 웹 사이트를 개발 중입니다. 자주 다음과 같은 것들을 사용하는 동안 나는 훌륭한 데이터 관리 문제를 가지고 있습니다. - 사용자 ID - 현재 사용자 ID (소유자의 프로필 인 사용자) - 소유자입니까 ???Yii 전역 변수 및 설정 문제

어디서 이런 것들을 정의 할 수 있습니까? 나는

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

} 

같은 나는 이러한 기능은 모든 페이지에 대한 공개할까요? 그러나 어떻게? 다른 말로하면 텍스트 줄이기, 이미지 자르기, 날짜 시간 형식 등의 내 자신이 좋아하는 기능이 포함 된 라이브러리는 어디에 둘 수 있습니까?

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

그때 어디서든 내 전역 함수를 호출 할 수

+0

그래서 내 답변은 2 개의 상향 회선으로 허용되었지만 사회자에 의해 삭제되었습니다. 이유가 주어지지 않았습니다. 이 사이트를 떠날 시간. – adamors

답변

1

를 호출하여 Yii::app()->request->baseUrl를 호출 할 수 있습니다

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

을, 이미지 자르기 또는 날짜 시간 형식 같은 것들을 모델에 갈 것 . 당신은 단순히 그것을위한 모델을 만들 것입니다. YII에서

0

나는 보통의 index.php에서 내 모든 일반적인 기능 와 globals.php 파일을 (루트의 하나를 YIP)를 사용합니다. 예를 들어, 내가 같은 특정 YII 기능 단축 : 그래서 다음 단순히 MVC 모델에 따르면 bu()

+0

나는 이것이 글로벌 데이터를 저장하는 "Yii way"가 아니라고 생각한다. –

+0

그래, 사실 ..... –

3

, 당신은

CApplicationComponent

클래스를 상속 (보호/compoents 이하) 클래스를함으로써이를 달성 할 수 있습니다. 그런 다음이 클래스의 속성을 전역으로 하나의 구성 요소로 호출합니다.

class GlobalDef extends CApplicationComponent { 
public $aglobalvar; 
} 

는 다음과 같이 구성 요소에서 기본 설정에서이 클래스를 정의 :

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

그리고 당신은 다음과 같이 호출 할 수 있습니다 도움이 될 수 있습니다

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

희망을.