Wie kann ich mit PHP auf die geschützte _values-Eigenschaft zugreifen, die von der Stripe-API zurückgegeben wurde?

8

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(); :

%Vor%     
curtisblackwell 07.04.2015, 14:50
quelle

2 Antworten

14

Sie müssen nicht die Reflection-API verwenden, die Klasse Stripe\Collection implementiert ArrayAccess . Sie können direkt durch iterieren:

%Vor%

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:

%Vor%

Das Argument true ist eine Rekursionsoption.

    
Victor Stanciu 07.04.2015, 14:55
quelle
0

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.

    
Mateusz 02.02.2017 04:35
quelle

Tags und Links