Szukam obiektu, który jest wywoływany w celu przekazania danych do magazynu danych. Moja implementacja używa MySQLi, ale chcę umożliwić innym programistom korzystanie z dowolnego magazynu danych, który chce.Jeśli używam metody statycznej w PHP do utworzenia połączenia z bazą danych, czy otrzymam jedno lub wiele połączeń?
Pomyślałem, że statyczna metoda może być najlepszą odpowiedzią, ale nie mając z nią nic wspólnego Nie jestem pewien, czy w rzeczywistości będę tworzył wiele połączeń lub używał tego samego.
<?php
class RECORDS {
protected $conn;
public function __construct() {
//contect to DB
$conn = $this::connection();
}
public static function &connection(){
$conn = NULL;
if($conn==NULL){
$conn = new mysqli(_DB_HOST_, _DB_USER_, _DB_PASS_, _DB_HOST_);
if ($mysqli->connect_errno) {
die("Failed to connect to MySQL: (" .
$mysqli->connect_errno . ") " .
$mysqli->connect_error);
}
}
return $conn;
}
// ... methods that do stuff
}
Czy mam dobre pojęcie na temat metod statycznych i czy będę ponownie używać tego samego połączenia lub tworzyć nowe?
Pomyśl o singletonie. – jsxqf
Chciałem tylko wskazać, że w tym przypadku, "$ conn = NULL; if ($ conn == NULL) {" zawsze będzie oceniać prawdę :) – Michael
Czy próbujesz wdrożyć Singleton? (wygoogluj to) –