한 못을 박았다 연결
class sqlClass {
private $_connection = null;
public function __construct() {
$this->_connection = new SomeConnection(array('param1', 'param2', 'param3'));
}
public function query($query) {
return $this->_connection->query();
}
}
이 추가 더 많은 자유를하자
class sqlClass {
private $_connection = null;
public function __construct($params) {
$this->_connection = new SomeConnection($params);
}
public function query($query) {
return $this->_connection->query();
}
}
3.1 게으름 추가하기
class sqlClass {
private $_connection = null;
private $_params = null;
public function __construct($params) {
$this->_params = $params
}
public function query($query) {
if ($this->_connection === null)
$this->_connection = new SomeConnection($this->_params);
return $this->_connection->query($query);
}
}
(210)
3.2 중 연결 클래스에 의존성 주입
class sqlClass {
private $_connection = null;
public function __construct(SomeConnection $connection) {
$this->_connection = $connection;
}
public function query($query) {
return $this->_connection->query($query);
}
}
4 이동 lazyness을 추가하고 OOP와 의존성 주입
class LazyConnection extends SomeConnection{
private $_params = null;
private $_inited = false;
public function __construct($params){
$this->_params = $params;
}
public function query($query){
if (!$this->_inited){
parent::__construct($this->_params);
$this->_inited = true;
}
parent::query($query);
}
}
을 사용하여 수동으로 연결을 닫을 필요가 없습니다 : 사용되지는 사용하지 마십시오 http://php.net/manual/en/features.gc.php
을 'mysql_ *'함수! 대신 PDO/MySQLi를 사용하십시오. OO를 사용하여 DB 연결을 사용하려는 경우 동일한 DB 연결을 사용하고 있는지 확인하십시오. 객체 지향 접근 방식으로 DB 연결을 감싸고 자한다면 많은 부분을 고려해야한다. – Raptor
모든 애플리케이션에 적합한 대답은 없습니다. 데이터베이스와의 상호 작용과 관련하여 응용 프로그램의 동작을 조사하고이를 기반으로 솔루션을 결정해야합니다. – sn00k4h