Ich arbeite an einer Symfony 2 WebApp, die die PayPal Rest API
verwendet, um PayPal-Zahlungen zu erstellen und zu akzeptieren.Symfony 2: Wie und wo die Laufzeiteinstellungsdatei gespeichert wird
Um jeden Benutzer auf eine PayPal-Seite in seiner Sprache umleiten zu können, muss ein Experience Profile für jede Sprache/Gebietsschema erstellt werden.
Jede Experience Profile
muss nur einmal erstellt werden. Zum Beispiel, wenn ein Profil für US
locale erstellen hat, kann dieses Profil wieder verwendet das gleiche Gebietsschema für jeden Kunden werden:
- Kunde gibt seine Adresse und contry XY auf meiner Seite
- Meine Seite überprüft, ob für
XY
locale Profil existiert - für
XY
locale neues Profil erstellen und speichern oder wiederverwenden ein
Jedes Profil hat eine eindeutige ID existiert. So suche ich nach einer Methode zum Speichern von Gebietsschema/ID-Paaren. Eine einfache Lösung wäre eine JSON-Datei. Aber wo diese Datei in der Symfony-Struktur zu speichern?
Profile werden spontan erstellt, wenn ein Benutzer aus einem neuen Land eine Zahlung tätigt. Somit werden diese Daten zur Laufzeit erstellt und gehören deshalb nicht in den Standard config
von Symfony. Ich weiß nicht einmal, ob diese Ordner auf meinen Code zugreifen/schreibbar sein sollen.
Also: Was ist der richtige Ort, um eine solche Datei zu speichern.
EDIT: Wie @JimL zeigte in den Kommentaren heraus, es wäre natürlich möglich, die Daten in der DB zu speichern. Allerdings sollte das Zahlungsbündel, an dem ich arbeite, in verschiedenen Projekten verwendet werden und somit so weit wie möglich vom Rest des Projekts getrennt sein.
Ziel ist es, die Daten in eine Datei zu speichern, nicht in der DB. Natürlich ist die DB viel effizienter, aber in diesem speziellen Fall reicht eine einfache Datei aus.
Die Frage ist: Wo diese Datei speichern? Erste Idee ist es, /MyBundle/Resources/config
zu verwenden, da dieses Verzeichnis alle anderen Konfigurationsdateien enthält. Aber ist dies der richtige Ort für Dateien, die zur Laufzeit ändern?
Klingen wie Sie es einfach als eine Einheit mit Bezug auf Benutzer hinzufügen könnten. Welches wird dann in db gespeichert – JimL
Nein, das ist nicht der Weg zu gehen. Das Profil ist NICHT mit einem bestimmten Benutzer verknüpft. Alle Benutzer, die "USA" als Land auswählen, verwenden das US-Profil. Wählt der gleiche Benutzer bei seinem nächsten Einkauf "Kanada", sollte er das CA-Profil usw. verwenden. Zusätzlich ist die Zahlungslogik in einem separaten Bundle implementiert, so dass sie in anderen Projekten wiederverwendet werden kann. Ich möchte diese Daten von der DB fernhalten. –
Bundles könnten auch DB-Entities hinzufügen, ich denke immer noch, dass dies in der db sein sollte. Wenn nicht mit dem Benutzer verknüpft, dann mit der Zahlung verknüpft – JimL