PDO和自定义数据库包装类:静态还是实例?

Cra*_*nio 3 php mysql oop pdo

我在PHP中寻找一个好的PDO包装类; 因为我所看到的那些类中没有适合我的需求,所以我决定编写自己的类,增强了我之前编写过的类,它使用了现在可怕的mysql_*函数来集成本机转义,db-nonnosticity,预处理语句等等.

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

$db = new Database();
$db->query("SELECT this FROM that");
Run Code Online (Sandbox Code Playgroud)

另一种是使用静态方法:

DB::query("SELECT foo FROM bar WHERE answer=42");
Run Code Online (Sandbox Code Playgroud)

我已经看到一些框架(f.ex. Joomla API)更喜欢使用第一种方法,但我不确定哪种框架可能是第二种方法可能存在的缺陷.

你有什么见解吗?

Mad*_*iha 5

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

但是,如果您希望这样做,请将其作为实例执行,原因如下:

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

所以是的,实例是要走的路,虽然我只会使用原生PDO来完成大多数任务.