포럼
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
singleton 관련 궁금한 부분....
2011.03.18 10:05
DB 연결부분은 Singleton 스타일로 만들어 볼려고 했더니 자료를 찾아보는중에 굳이 singleton 스타일로 만들 필요가 없다더군요...
그래도 만들어진 클래스 자주자주 새로이 생성혹은 파괴되는일을 굳이 안해도 될듯해서 찾아서 만들어 사용해봤습니다.
주로 c++을 하던터라 어색하게 구현 해버렸습니다.
우선 php의 객체 스타일이 c++ 이랑 많은 부분에서 틀리더군요....
class Singleton;
매소드 public getInstance();
class DBCon extends Singleton;
이런식으로 구현부와 사용되는곳을 분리할려고 했는데...
문제는 이런스타일의 경우 오류를 내더군요...
$myDB = DBCon::geInstance();
이런식으로 함수를 호출시 문제가 발생하더군요.
문제는 부모객체를 생성하지 자식객체가 생성되는것이 아니더군요...
그래서 php.net에 가보니 좋은 방법은 getInstance();에서
get_called_class();라는 함수를 이용하면 쉽게 해결이 되는데...
5.3이하 버전에서는 조금 구리게 만들어지더군요...
혹시 가장 좋은 방법을 알고 계신분 계신가요....
차라리 그냥 안만드는게 가장 좋은걸까요???
ps.
c++ 객체 스타일과 php의 객체 스타일이 많이 틀리더군요...
특히 상속에서의 스타일은 훨씬더 심플하게 구현되어있네요...
singleton 찾다보니 php를 이용한 디자인 패턴구현되어있는 사이트가 있더군요...
사이트 링크 걸어두었습니다.
http://www.fluffycat.com/PHP-Design-Patterns/
그래도 만들어진 클래스 자주자주 새로이 생성혹은 파괴되는일을 굳이 안해도 될듯해서 찾아서 만들어 사용해봤습니다.
주로 c++을 하던터라 어색하게 구현 해버렸습니다.
우선 php의 객체 스타일이 c++ 이랑 많은 부분에서 틀리더군요....
class Singleton;
매소드 public getInstance();
class DBCon extends Singleton;
이런식으로 구현부와 사용되는곳을 분리할려고 했는데...
문제는 이런스타일의 경우 오류를 내더군요...
$myDB = DBCon::geInstance();
이런식으로 함수를 호출시 문제가 발생하더군요.
문제는 부모객체를 생성하지 자식객체가 생성되는것이 아니더군요...
그래서 php.net에 가보니 좋은 방법은 getInstance();에서
get_called_class();라는 함수를 이용하면 쉽게 해결이 되는데...
5.3이하 버전에서는 조금 구리게 만들어지더군요...
혹시 가장 좋은 방법을 알고 계신분 계신가요....
차라리 그냥 안만드는게 가장 좋은걸까요???
ps.
c++ 객체 스타일과 php의 객체 스타일이 많이 틀리더군요...
특히 상속에서의 스타일은 훨씬더 심플하게 구현되어있네요...
singleton 찾다보니 php를 이용한 디자인 패턴구현되어있는 사이트가 있더군요...
사이트 링크 걸어두었습니다.
http://www.fluffycat.com/PHP-Design-Patterns/