CI 묻고 답하기

제목 this->load->library 가 싱글톤인지?
글쓴이 짜깁기 작성시각 2013/11/26 17:47:33
댓글 : 6 추천 : 0 스크랩 : 0 조회수 : 14492   RSS
 안녕하세요. 자바개발자인데요. 처음 이그나이터를 사용하고 있고 많은 도움을 받고 있습니다^^

질문이 있는데요.

컨트롤러에서  this->load->library 를 이용해서 제가 만들 라이브러리를 로드합니다.
이 라이브러리(클래스) 에는 멤버변수들이 존재하고요.

위의 this->load->library 수행시 객체가 싱글톤으로 생성이 되나요? 아니면 그때 그때 새로운 객체로 생성이 되나요?

제가 궁금한거는 싱글톤일경우 서로다른 세션들이 해당 라이브러리의 멤버변수를 공유할까봐 여쭤보는 거거든요.

만약 싱글톤이라면 제가 원하는 거는 멤버변수를 공유하지 않기 위해 객체를 생성해야 하거든요 new 키워드로 하는건지 보통 현업에서 어떻게 하시는 지 조언 부탁드립니다.

 다음글 참 또한가지 더 여쭤 보고 싶은게 있습니다 (3)
 이전글 약 한달째 눈팅 및 검색만 하는 초보 입니다. (5)

댓글

한대승(불의회상) / 2013/11/26 17:58:39 / 추천 0
네 싱글톤입니다.
public 으로 선언된 변수는 공유 가능 합니다.

서로 다른 세션이란 무었을 이야기 하시는건지요?
criuce / 2013/11/26 18:19:09 / 추천 0
PHP는 JAVA랑 달라서 호출시에 매번 새로 실행이 됩니다. 그러니 말씀하신 걱정은 안하셔도 될것 같아요.

짜깁기 / 2013/11/26 18:27:12 / 추천 0
 싱글톤임에도 불구하고 새로 호출시마다 객체 생성된다는 말씀인가요?
제가 자바개발자다보니 그런 개념들이 헷갈리네요.^^

한대승님 질문에 다른 세션이라함은 여러사용자가 동시에 해당 컨트롤러를 호출했을때를 말씀드리는 거구요.

자바 같은 경우는 스프링을 예로 들자면 해당 라이브러리가 싱글톤으로 로드 되면
여러 유저가 컨트롤러 동시 호출시 로드된 라이브러리의 멤버변수가 공유되서 문제를 일으 킬 수 있거든요.
A유저가  count 값을 3로 변경했다면 B유저가 호출시 count 값은 3으로 반환되는 그런 관계지요
설명이 어렵네요.^^

criuce 님대로라면 위와 같은 상황에 count 변수는 공유 안된다는 말씀이시죠? 
니삼 / 2013/11/26 18:43:23 / 추천 0
문제습니다.
criuce / 2013/11/26 21:54:09 / 추천 0
네 이해하신게 맞습니다.
PHP는 모든 클래스가 호출시마다 생성되기 때문에 말씀하신것과 같은 문제는 발생하지 않습니다.
짜깁기 / 2013/11/27 09:08:47 / 추천 0
 답변 감사합니다.^^