PHP新类扩展类实例

时间:2015-01-28 09:50:41

标签: php inheritance reflection pdo

我有一个扩展PDO的类:

class MyPDO extends PDO {

}

其中有一些辅助方法,例如insert()update()。但是,除了框架之外,我通常可以访问已经初始化的PDO实例。

如何实例化MyPDO以便它扩展已存在的PDO实例而不是创建新实例?

$pdo; # An already existing PDO connection.

$myPdo = new MyPDO(); # Creates a new PDO object

# I want to create a new MyPDO which extends $pdo

$myPdo = new MyPDO() + $pdo; # How would I accomplish this? Reflection?

我基本上不希望有多个PDO连接,但想要MyPDO的附加功能。可以这样做吗?也许与反思?

1 个答案:

答案 0 :(得分:0)

最简单的解决方案是在课堂上传递$ pdo

<?php

    class MyPDO {
        public $pdo;
        public function __construct($pdo) {
           $this->pdo = $pdo;
        }

        // your Methods use in the class $this->pdo->foo
   }
  $myPdo = new MyPDO($pdo);

其他方式......你在pdo上直接扩展mypdo并从mypdo构建实例$ pdo

class MyPDO extends PDO {
    public function __construct() {
       parent::__construct();
    }
    #Your additional methodes
}
$pdo = new MyPDO();
相关问题