Dynamiczna klasa nazwana z aliasem
WIĘC,
Mam problem z dynamicznym tworzeniem obiektów przy użyciu przestrzeni nazw. Oto kod przestrzeni nazw:
namespace Foo
{
class Bar
{
}
}
Teraz próbuję stworzyć obiekt klasyBar
z:
include('namespace.php');
$sName = 'Bar';
$sClass = '\\Foo\\'.$sName;
$rObj = new $sClass; //correct object
i wszystko idzie dobrze. Ale teraz chcę używać aliasu i robić coś takiego:
include('namespace.php');
use Foo as Baz;
$sName = 'Bar';
$sClass0= '\\Foo\\'.$sName;
$sClass1= '\\Baz\\'.$sName;
$rObj = new $sClass0; //correct object
$rObj = new $sClass1; //Fatal error
I nie jestem w stanie utworzyć instancji obiektu w ten sposób (i dostęp do pełnej nazwy nadal działa dobrze). Więc moje pytanie brzmi - czy można uzyskać dostęp do klasy za pośrednictwem aliasu, a jeśli tak, to w jaki sposób? Próbowałem też uzyskać dostęp podczas używania$sClass1='Baz\\'.$sName
- bez powodzenia. Sprawdziłem też deklarowane klasy przezget_declared_classes()
funkcja, pokazuje, że mam tylko\Foo\Bar
klasa (brak odniesienia do aliasu).
Nie jestem pewien, czy to ma znaczenie, ale używam wersji PHP 5.5.