2
有沒有辦法,使用JUST PHP PDO(無ORMs)來全局過濾所有的讀取/插入/更新/刪除操作。PHP PDO添加過濾器到所有查詢
一個示例是租戶字段(在多租戶數據庫中)。我想在全球範圍內這種類型的過濾器添加到所有的操作:再次
租戶=公司A
。沒有ORM,我已經知道如何用SQL Alquemy,Laravel的雄辯和主義來做到這一點。我現在想知道它是否可能與PDO一起使用。
有沒有辦法,使用JUST PHP PDO(無ORMs)來全局過濾所有的讀取/插入/更新/刪除操作。PHP PDO添加過濾器到所有查詢
一個示例是租戶字段(在多租戶數據庫中)。我想在全球範圍內這種類型的過濾器添加到所有的操作:再次
租戶=公司A
。沒有ORM,我已經知道如何用SQL Alquemy,Laravel的雄辯和主義來做到這一點。我現在想知道它是否可能與PDO一起使用。
創建擴展PDO
像
class DB extends PDO {...
通常我重寫__construct()
方法來獲取任何文檔內的數據庫憑據並連接到數據庫中的類,不要忘了這個方法父的底部調用構造parent::__construct()
...
然後你可以用你自己的方法
public function find($params) {
...
$stmt = $this->prepare('')...
$rows = $stmt->fetch(PDO::FETCH_ASSOC)...
}
在你自己的方法中,你可以應用你的過濾器...
你基本上想要自動添加WHERE tenant ='companyA'到所有查詢嗎?你可能可以擴展PDO並覆蓋一些方法,使用SQL解析器或其他東西,並根據你的喜好修改查詢。 – Jakar
是的,這是我的想法,但我有什麼要覆蓋/擴展? :) –
@MauricioLopez你只需要擴展PDO並編寫自己的函數,如find(),findAll(),persist()... –