3

我在 PHP 中寻找一个好的 PDO 包装类;由于在我见过的类中没有一个类适合我的需要,我决定编写自己的类,增强我之前编写的类,使用现在可怕的mysql_*函数来集成本机转义、db-agnosticity、prepared statements 等。

我想知道的一件事是,开发和使用这样的类的最佳方法是什么?一种选择是通过实例:

$db = new Database();
$db->query("SELECT this FROM that");

另一种是使用静态方法:

DB::query("SELECT foo FROM bar WHERE answer=42");

我见过一些喜欢使用第一种方法的框架(例如 Joomla API),但我不确定第二种方法可能存在哪些缺陷。

你有什么见解吗?

4

2 回答 2

5

我个人认为不需要 PDO 包装类(PDO 本身就是一个数据库包装类)。

但是,如果您想这样做,请作为一个实例进行,原因如下:

  1. 这更有意义,您可能需要多个数据库连接。
  2. 它更容易使用。
  3. 它使用较少的全局空间,这是邪恶的
  4. 这让我开心。

所以是的,实例是要走的路,尽管我只会使用本机 PDO 来完成大多数任务。

于 2012-07-12T15:41:45.607 回答
-3

数据库类的静态实例很方便,因为不必将对象作为参数或调用传递给函数/方法,global($db)您可以简单地调用$db = Database::instance(),而不是实例化一个您可以访问单例的新对象。

仅取决于您希望应用程序如何工作。

于 2012-07-12T15:40:56.277 回答