0
我正在用PHP编写一个简单的数据库抽象层。我目前正在研究查询构建器,构建SQL“代码”的类。PHP抽象层 - 从名字中获取类
有没有更好的方法来做这样的事情?
if($dbengine == "MySQL")
{
MySQLQueryBuilder::buildInsert($table, $data);
}
else if($dbengine == "PgSQL")
{
PgSQLQueryBuilder::buildInsert($table, $data);
}
// And so on...
我想是这样的:
$querybuilder = get_class_from_name($dbengine . "QueryBuilder");
$querybuilder::buildInsert($table, $data);
我如何能做到这一点任何想法?
这听起来像是一个完美匹配的老式战略模式。 – kingcoyote
你应该有一个'MySQL engineBuilder'或'PgSQLQueryBuilder'的实例'$ engine'。这两个类都应该实现一个接口'SQLQueryBuilder',它指定一个公共方法'buildInsert($ table,$ data)'。这样,你可以简单地调用'$ engine-> buildInsert($ table,$ data);'。这是正确的面向对象的方式。 – Niko