0
S.O의 question 여기에, 대답은 PDO 연결을 처리하기 위해 익명 기능과 공장 패턴을 모두 사용하는 것이 좋습니다. 익명의 기능은 다른 데이터베이스에 연결해야 할 경우에 사용되는 것으로 생각됩니다. 다른 기능이 정의 될 것입니다. 이 경우 익명의 함수를 단일 데이터베이스의 팩토리 클래스 자체로 옮기는 것이 좋을까요?PDO 익명의 공장 내부
이것은 심지어 단지 원래의 대답은 즉 다른 연결을 설정, 달성하기 위해 노력했다 달성 생성자에 PDO의 매개 변수를 전달하지 왜이 방법으로, 마음 또한
class StructureFactory
{
protected $provider = null;
protected $connection = null;
public function __construct()
{
$this->provider = function() {
$instance = new PDO('mysql:......;charset=utf8', 'username', 'password');
$instance->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$instance->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
return $instance;
};
}
public function create($name)
{
if ($this->connection === null)
{
$this->connection = call_user_func($this->provider);
}
return new $name($this->connection);
}
}
에 있었다 무엇인가? 같은
뭔가 : 당신이 의존성 주입에서 어떤 혜택을 것처럼 보이는데 그렇게 때문에
class StructureFactory
{
protected $provider = null;
protected $connection = null;
public function __construct($PDO_Params)
{
$this->provider = function() {
$instance = new PDO($PDO_Params["dsn"], $PDO_Params["username"], $PDO_Params["password"]);
$instance->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$instance->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
return $instance;
};
}
public function create($name)
{
if ($this->connection === null)
{
$this->connection = call_user_func($this->provider);
}
return new $name($this->connection);
}
}
간단히 설명하십시오. 익명의 함수는 요청에 따라 연결하는 데 사용됩니다. 처음으로 호출 할 때 한 번 연결됩니다. –
@ YouCommonSense 그 부분을 이해했지만 해당 익명 함수도 생성자의 일부가 될 수 있습니다. 맞습니까? –
@feetnappy 생성자는 클래스를 단위 테스트 할 수 없으므로 논리를 포함하지 않아야합니다. –