PHP: ottieni un'istanza della class statica per valore di string

Sto lavorando su un php web api che mi è stato consegnato con un sacco di codice che deve essere refactored. Quelli che hanno scritto il codice volevano includere una class di configuration statica in una risorsa API e quindi get un'istanza di quella class qualcosa del genere:

<?php $obj = "User"; $confObjectSuffix = "_conf"; $confObject = $obj.$confObjectSuffix; if ($confObject::inst()->checkMethod($method)) { ..... 

Questo dà l'errore "Errore Parse: errore di syntax, T_PAAMAYIM_NEKUDOTAYIM inatteso in ….." poiché $ confObject è una string e non un object.

Ho scritto alcuni testcode:

 <?php $class = "User_conf"; echo "<pre>"; print_r($$class::Inst()); echo "</pre>"; class User_conf { private static $INSTANCE = null; public static function Inst() { if(User_conf::$INSTANCE === null) { User_conf::$INSTANCE = new User_conf(); } return User_conf::$INSTANCE; } } 

Ma non riesco a farlo funzionare anche con $$, c'è un altro modo per aggirare questo? Non voglio riscrivere più del necessario.

Puoi usare call_user_func per catturare l'istanza, quindi elaborarla come necessario:

 $instance = call_user_func(arrays($confObject, 'inst')); if($instance->checkMethod($method)) { ...