CI 묻고 답하기

제목 사이트 전역변수 설정 질문입니다.
글쓴이 liekie 작성시각 2010/07/23 14:15:02
댓글 : 3 추천 : 0 스크랩 : 0 조회수 : 38094   RSS

$data['PRJ_TITLE'] = " Welcom ~ ";

위의 변수를 모든 view페이지에서 사용하고 싶습니다.

(사이트 전역변수? 글로벌변수? 뭐라 부르죠 ^^;)

찾아보니...


[Controller.php]

$data['PRJ_TITLE'] = "::::::: Welcome ~ :::::::::";
$this->load->vars($data);   // 모든 view에서 쓸수있도록 변수 설정


생성자에 위와 같이 설정하고...

[test_view.php]

타이틀 : <?=$PRJ_TITLE?>

이런 식으로 사용중입니다.

그런데...

Controller.php에 선언해서 사용을 하게 되면...
모든 컨트롤러가 실행될때마다 계속 값을 재셋팅하니까...

처음 한번만 실행되는 파일에 선언해야 할것 같습니다.

constants.php에 설정하는 것 같긴한데...
어떤식으로 선언해서 사용해야 하나요?
아니면 다른 파일에 설정하나요?
위의 코드는 constants.php에서 실행하면 에러가 발생하더라구요...

답변 부탁드립니다.

 다음글 view파일 확장자 바꾸고 싶은데요.. (4)
 이전글 file_get_contents() 함수를 사용하고 싶... (1)

댓글

변종원(웅파) / 2010/07/23 15:21:45 / 추천 0
constants.php 파일 보시면 선언한 예가 있습니다.
말 그대로 상수선언 하는 곳이기 때문에 위와 같은 구문은 에러가 날수밖에 없습니다.

가변적인 상수가 아니라면 constants.php에 선언을 해서 사용하시고
가변적이라면 hook(매뉴얼 참조)을 이용하여 컨트롤러가 로드되기전 시점에서 상수선언해주시면 됩니다.

http://codeigniter-kr.org/tip/view/104/page/7/ 참고
케이든 / 2010/07/23 17:29:01 / 추천 0
다른 방법으로는 Controller를 확장해보세요

//MY_Controller.php

class MY_Controller extends Controller{
 //...
}

class Frontend_Controller extends MY_Controller{
 public function __construct()
 {
   //...
   $var = 'welcome';
   $thisl->load->vars($vars);
 }
}



//Welcome.php

class Welcome extends Frontend_Controller{
  //...
}

jois / 2010/07/23 21:46:26 / 추천 0
 저런건 웅파님 말씀대로 상수선언을 하거나

config를 사용하시는게 나을 것 같네요
config 사용방법은 http://www.codeigniter-kr.org/user_guide/libraries/config.html
위 주소를 참고하시고,

$this->config->item('PRJ_TITLE'); 혹은 config_item('PRJ_TITLE')과 같이 값을 가져올 수 있습니다.

autoload를 통해 자동로드로 설정해놓으면 더더욱 편하실듯하네요