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

Popular posts from this blog

java - Play! framework 2.0: How to display multiple image? -

gmail - Is there any documentation for read-only access to the Google Contacts API? -

php - Controller/JToolBar not working in Joomla 2.5 -