我在PHP中寻找一个好的PDO包装类;因为我所看到的那些课程中没有适合我的需求,所以我决定编写自己的课程,增强我之前编写的类,使用现在可怕的mysql_*
函数来集成本机转义,db-agnosticity,编写陈述等等。
我想知道的一件事是,开发和使用这样的类的最佳方法是什么?一种替代方案是实例:
$db = new Database();
$db->query("SELECT this FROM that");
另一种是静态方法:
DB::query("SELECT foo FROM bar WHERE answer=42");
我见过一些喜欢使用第一种方法的框架(f.ex. Joomla API),但我不确定哪种框架可能是第二种方法可能存在的缺陷。
你有什么见解吗?
答案 0 :(得分:5)
我个人认为不需要PDO包装类(PDO本身就是一个数据库包装类)。
但是,如果您希望这样做,请将其作为实例进行,原因如下:
所以是的,实例是要走的路,尽管我会在大多数任务中使用原生PDO。
答案 1 :(得分:-3)
数据库类的静态实例很方便,而不必将对象作为参数或调用global($db)
传递给函数/方法,您只需调用$db = Database::instance()
而不是实例化新对象你可以访问单身人士。
取决于您希望应用程序如何工作。