存取多個類別中的 PDO 連接
在物件導向程式設計中,正確的封裝和關注點分離至關重要。關鍵概念之一是避免在類別之間直接傳遞連接。這可能會導致程式碼緊密耦合,難以維護和擴展。
要解決此問題,建議遵循以下最佳實務:
1.集中連線管理
在應用程式層級建立單一連線實例。這可以透過在任何類別之外實例化 PDO 連接並使其全局可用來實現。
2.將連接作為建構子參數傳遞
不要讓每個類別實例化自己的連接,而是將集中連接實例作為建構子參數傳遞給每個需要資料庫存取的類別。這可確保連線在整個應用程式中安全一致地傳遞。
3.範例程式碼
以下是遵循以下最佳實務的修訂範例:
// database.php $host = '127.0.0.1'; $db = 'test'; $user = 'root'; $pass = ''; $dsn = "mysql:host=$host;dbname=$db"; $pdo = new PDO($dsn, $user, $pass);
// user.php class User { public function __construct(\PDO $pdo) { $this->conn = $pdo; } public function getUsers() { $stmt = $this->conn->prepare("SELECT username, usermail FROM user"); $stmt->execute(); return $stmt->fetchAll(); } }
// app.php include 'database.php'; $user = new User($pdo); $users = $user->getUsers(); foreach ($users as $user) { echo $user['username'] . "\n"; }
透過遵循這些準則,您可以確保應用程式的資料庫存取是以一致且有效率的方式處理,避免與直接連接傳遞相關的常見陷阱。
以上是如何在 PHP 中跨多個類別有效管理 PDO 連線?的詳細內容。更多資訊請關注PHP中文網其他相關文章!