为同一个类创建多个别名PHP

时间:2015-05-23 14:45:08

标签: php

我需要为同一个类创建多个别名,并根据实际别名选择另一个数据库:

实施例

$q = DB::query(...);

别名DB2,DB3用于类" DB":

$q = DB2::query(...);
$q = DB3::query(...);

有什么解决方案吗?谢谢你的回复。

2 个答案:

答案 0 :(得分:2)

PHP中有一个函数i3ipc

class_alias('DB', 'DB2');
class_alias('DB', 'DB3');

另外,你可以扩展它:

class DB2 extends DB {}
class DB3 extends DB {}

答案 1 :(得分:0)

首先,我需要根据当前的别名来连接数据库。这是获得良好内存性能的良好解决方案吗?

我的代码:

<?php
class DB 
{
    public static function query($id)
    {
        //query ....

        $class = static::getClass();
        return new $class;
    }

    public function __construct()
    {
        echo get_class($this); //select database by class name
    }
}

class DB2 extends DB
{
    public static function getClass()
    {
        return __CLASS__;
    }
}

class DB3 extends DB
{
    public static function getClass()
    {
        return __CLASS__;
    }
}

$q = DB2::query(1);
$q = DB3::query(1);
?>