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?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage