Sambungan Pangkalan Data: Global lwn Singleton lwn Kilang Sambungan
Apabila mewujudkan sambungan pangkalan data dalam PHP, pembangun sering berdebat antara menggunakan pembolehubah global atau corak tunggal. Artikel ini mengkaji faedah menggunakan pendekatan kilang tunggal berbanding reka bentuk tunggal global atau ringkas.
Sambungan Pangkalan Data Global
Menggunakan pembolehubah global untuk sambungan pangkalan data menyediakan akses terus kepada sambungan dari mana-mana skop dalam skrip PHP. Walau bagaimanapun, pendekatan ini mengalami had berikut:
Sambungan Pangkalan Data Tunggal
Corak tunggal menangani beberapa kelemahan pembolehubah global dengan merangkum sambungan pangkalan data dalam satu objek. Objek ini bertanggungjawab untuk mencipta dan mengurus sambungan, memastikan bahawa hanya satu kejadian wujud sepanjang pelaksanaan aplikasi.
class DB_Instance { private static $db; public static function getDBO() { if (!self::$db) self::$db = new PDO(...); return self::$db; } }
Walaupun singleton memberikan kawalan dan enkapsulasi yang lebih baik daripada global, ia masih tidak mempunyai fleksibiliti dan kebolehlanjutan:
Pendekatan Kilang Singleton
A kilang singleton menawarkan pendekatan yang lebih fleksibel dan boleh disesuaikan untuk mencipta dan mengurus sambungan pangkalan data. Daripada bergantung pada sambungan statik tunggal, kilang menyediakan titik masuk berpusat untuk mendapatkan sambungan yang disesuaikan dengan keperluan khusus.
class ConnectionFactory { private static $factory; private $db; public static function getFactory() { if (!self::$factory) self::$factory = new ConnectionFactory(...); return self::$factory; } public function getConnection() { if (!$this->db) $this->db = new PDO(...); return $this->db; } }
Pendekatan ini membolehkan:
Atas ialah kandungan terperinci Global lwn Singleton lwn Kilang Sambungan: Manakah Pendekatan Terbaik untuk Sambungan Pangkalan Data dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!