방금 php 양식 mysql을 업그레이드하여 객체 지향 접근 방식으로 mysqli를 사용했습니다. 나는이 코드에 버그가 있다고 믿을만한 이유가있다. 내 목표는 스크립트 실행 당 단 하나의 데이터베이스 연결을 보장하기 위해 단일 패턴을 사용하는 것입니다. $ db는 데이터베이스 링크를 보유합니다. 구문 - 클래스의 속성 메소드에 접근하기
누군가는 구문이 떨어져 보이는 라인return $one->$db->query($query);
를 확인할 수 있습니다. 당신의 싱글 톤 패턴이 정확하지 않은 적이
class one
{
private static $single = NULL;
public $db = NULL;
public function __construct()
{
$this->db = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_DATABASE);
self::$single=1;
}
public static function make_one()
{
if(self::$single==NULL)
{
return new self();
}
}
}
/*database*/
class database
{
public function __construct()
{
one::make_one();
}
public static function arche_query($query)
{
return $one->$db->query($query);
}
}
왜 클래스를 하나 개의 인스턴스를 생성하는 방법 하나는 데이터베이스 연결이 아니라 데이터베이스 클래스가 있습니까? 1 개의 클래스에서 모든 코드를 옮길 수 있습니까? –
http://www.php.net/manual/en/language.oop5.patterns.php – dqhendricks