PHP statischer Methodenaufruf mit variablem Klassennamen und Namespaces
Ich versuche, eine statische Methode für eine Namespace-Klasse aus einer anderen Klasse mit demselben Namespace aufzurufen. Der Name der anderen Klasse ist jedoch in einer Variablen enthalten:
<?php
namespace MyApp\Api;
use \Eloquent;
class Product extends Eloquent {
public static function find($id)
{
//....
}
public static function details($id)
{
$product = self::find($id);
if($product)
{
$type = $product->type; // 'Book'
$product = $type::find($product->id);
return $product;
}
}
}
Hier ist derBook
Klasse:
<?php
namespace MyApp\Api;
use \Eloquent;
class Book extends Eloquent {
public static function find($id)
{
//....
}
}
Meine Typvariable enthält hier einen gültigen KlassennamenBook
. Diese Klasse befindet sich im selben Ordner und verwendet denselben Namespace. Dieser Code gibt den Fehler zurückClass 'Book' not found
. Ich habe verschiedene Variationen (von den SO-Fragen, die ich gefunden habe) mit Backslashes versucht, oder diecall_user_func
funktion, aber nichts hat funktioniert. Weiß jemand was los ist?