Alex_: Std::Class, Bezug soll aus Variable kommen

Beitrag lesen

Hallo Dennis!

das ist doch schon mal eine viel bessere Beschreibung! Wie kommen die Daten denn in die Tabelle? Wenn die einigermaßen statisch ist, kannst Du das doch auch direkt in PHP machen. Z.B. (wenn Du OOP nutzt) durch eigene "Wrapper"-Klassen.

Die Referenztabelle fülle ich manuell (spääter mal über ein Formular, aber immer noch manuell). Ich schaue mir also die API an und suche mir die benötigten Werte raus und speichere die "Referenz" bzw. war so der Plan.

Beispiel (auch ungetestet, geht ja nur um's Prinzip):

abstract class ApiValues
{
    protected $_valueObj = null;

    public function __construct(stdObj $valueObj)
    {
        $this->_valueObj = $valueObj;
    }

    public abstract function getName();
}

class Api1 extends ApiValues
{
    public function getName()
    {
        return $this->_valueObj->benutzer->name;
    }
}

class Api2 extends ApiValues
{
    public function getName()
    {
        return $this->_valueObj->name;
    }
}

// Verwendung

$apiType = 'Api1';
$parsedJson = $deinGeparstesJsonObjekt;

switch ($apiType) {
    case 'Api1':
        $apiValues = new Api1($parsedJson);
        break;
    case 'Api2':
        $apiValues = new Api2($parsedJson);
        break;
}

$name = $apiValues->getName();

Ist zwar was mehr Arbeit, so hast Du es aber übersichtlich, sauber und einen einfachen Zugriff auf die Werte. Musst Du natürlich auch nicht in einem Objekt machen, das geht grundsätzlich auch mit einfachen if-else- oder switch-Anweisungen, die dürften aber schnell relativ unübersichtlich werden.

Vielen Dank für das Beispiel. Ich glaube jetzt hab ich endlich mal ein Anwendungsbeispiel mit Vererbung. Dieser Weg erscheint mir sehr sinnvoll und strukturiert; werde mich auf jeden Fall daran versuchen.

Vielen Dank, für deine Antworten und die Codebeispiele. Ich glaube jetzt habe ich wieder eine Orientierung :)