sql - PHP Abstraction Layer - Get class from name -
i'm writing simple database abstraction layer in php. i'm working on query builders, classes build sql "code".
are there better ways doing this?
if($dbengine == "mysql") { mysqlquerybuilder::buildinsert($table, $data); } else if($dbengine == "pgsql") { pgsqlquerybuilder::buildinsert($table, $data); } // , on... i'm thinking like:
$querybuilder = get_class_from_name($dbengine . "querybuilder"); $querybuilder::buildinsert($table, $data); any ideas on how can this?
you if want static:
$statement = call_user_func(array($dbengine . 'querybuilder', 'buildinsert'), $table, $data); but agree niko comment, having instance of builder nicer.
update:
with way niko suggested, do:
$classname = $dbengine . 'querybuilder'; $builder = new $classname(); $statement = $builder->buildinsert($table, $data); so no ifs required @ all, code looks shorter , cleaner...
Comments
Post a Comment