CI 묻고 답하기

제목 몇가지 질문!
글쓴이 아로운 작성시각 2013/06/24 17:48:39
댓글 : 1 추천 : 0 스크랩 : 0 조회수 : 19088   RSS
코딩을 하다가 두가지 부분에서 의문을 느껴 글을 올립니다.
고수분들의 다양한 의견을 듣고 싶습니다.

1. controller 부분에서 모바일스크린의 사이즈를 얻는법!
 javascript를 사용하면 될 듯 한데, 어느부분에서 어떻게 써야 효율적일까요?

2. database, session, cookie를 남기는 것 이외에는 정보(변수 혹은 배열)를 전역으로 공유하는 방법이 존재하나요?
database는 서버를 거쳐야 하는 단점이 있고, session을 이용한 방법은 세션종료가 불분명하다는 단점이 있습니다. 또한 cookie를 남기는 것은 set/get을 사용해야 하므로 무척 번거로워 보입니다. get/post는 정보 노출의 위험이 있구요...
서로 다른 컨트롤러에서도 일반 프로그램에서 전역변수를 사용하는 것 처럼 정보를 공유할 수 있나요?

모든 답변해주신분들께 미리 감사를 드립니다.
 다음글 데이터베이스 커넥션 종료? (1)
 이전글 $OUT ?? (2)

댓글

변종원(웅파) / 2013/06/24 18:49:30 / 추천 0
1. 모바일 스크린 사이즈가 모바일웹의 사이즈를 말씀하시는건가요?
그렇다면 자바스크립트로 가져올 수 있습니다.


2. ci 전역변수가 있고 상수를 이용할 수도 있습니다. 매뉴얼에서 로더 부분 참고하세요.

$this->load->vars($array)

이 함수는 연관배열을 입력받아 PHP extract 함수를 통해 변수를 생성합니다. 이 함수는 위의 $this->load->view() 함수에서 두번째 파라미터를 사용한 경우와 같은 결과를 보여줍니다. 만약 컨트롤러의 생성자에서 전역변수를 설정하여 모든함수에서 로드한 뷰에 모두 사용할수 있도록 하려면 이함수를 사용합니다. 이함수를 여러번 호출할 수도 있습니다. 데이터는 캐시되고 합쳐져서 하나의 배열이 된 다음 변수로 변환됩니다.

$this->load->get_var($key)

뷰에서 사용가능한 연관배열을 체크합니다. 어떤 변수가 라이브러리나 컨트롤러에서 $this->load->vars()를 통해 설정된 경우 유용합니다.