Ich integriere die Stripe-API mit einem CMS. Ich muss die _values
-Eigenschaft aus Abfragen als ein Array zurückgeben, so dass die Daten als Vorlagenvariablen im CMS verfügbar sind, aber es ist immer geschützt.
Ich habe eine Reflection-Klasse verwendet, um an die Daten zu kommen, aber jetzt, wo ich ' Wenn ich Stripe's \Stripe\Plan::all();
verwende, muss ich die Shortcut-Methode aufrufen, die ich geschrieben habe, um die Reflection-Klasse mehrfach zu behandeln. Es ist jedoch nicht genau rekursiv, da ich es anders handhaben müsste, je nachdem, welche Methode ich von der Stripe-API aus aufrufen würde.
Gibt es eine Möglichkeit, eine Reflection-Klasse wirklich rekursiv zu verwenden? Gibt es etwas passenderes als eine Reflection-Klasse, die ich nicht kenne?
Hier ist ein Beispiel für var_dump()
ed Antwort von \Stripe\Plan::all();
:
Sie müssen nicht die Reflection-API verwenden, die Klasse Stripe\Collection
implementiert ArrayAccess . Sie können direkt durch iterieren:
Hier ist die Basisklasse, die die Klasse Collection
erweitert. Dies gilt für fast alle Klassen in der Stripe-PHP-Bibliothek, einschließlich Stripe\Plan
. Sie können also jede Art von Rekursion verwenden, die Sie mit normalen Arrays verwenden würden.
Wenn Sie die Eigenschaft _values
als Array zurückgeben möchten, können Sie die __toArray()
Methode:
Das Argument true
ist eine Rekursionsoption.
Um Victor Stancius Antwort hinzuzufügen, können Sie dynamische Eigenschaften verwenden, wenn Sie nur auf bestimmte Elemente von _values
-Array zugreifen möchten.
Wenn Sie beispielsweise auf Daten zugreifen möchten, können Sie dies folgendermaßen tun:
%Vor%Und dann können Sie analog jedes Array-Element aus jedem Plan abrufen:
%Vor%Ich verwende diesen Code für Stripe API Version 3.
Tags und Links php stripe-payments