Afhankelijk van het environment type (development, testing, stating, production), moet een database adapter geladen worden (MySQL, MySQLi, SQLite, etc). Dat zijn meerdere classes in 1 namespace. Namespace is bijv pr\database\mysql. Wat ik zoek is:

<?php

$ns = 'pr\\database\\' . $adapters[$env]; // bijv "pr\database\mysql"

use $ns AS adapter;

$connection = adapter\Connection::open(array('database' => 'bla'));
// en
$query = new adapter\Query;
// etc

?>


De dynamische namespace "adapter" is dan variabel. Het stukje hierboven is echter geen PHP =( Variabele namespaces mag niet ofzo!? De foutmelding:

Parse error: parse error, expecting `T_STRING' or `T_NS_SEPARATOR'


Hoe kan het wel? De laatste 2 statements gaan heel vaak gebruikt worden, dus dat moet makkelijk zijn. (Dus geen call_user_func en het liefst geen $variabele.)

Iemand een briljant idee?

Reageren