2016-05-06 5 views
-1

Ich habe ein PHP-Paket, das ich als Composer-Paket zu einer größeren Anwendung hinzufügen.PHP Composer Paket Anmeldeinformationen

Der Code verbindet sich mit einer API, um Daten abzurufen und zu senden.

Welche Optionen gibt es, um die API-Anmeldeinformationen zu speichern? Unter Berücksichtigung der Tatsache, dass die Anwendung in mehreren Umgebungen mit potenziell unterschiedlichen API-Berechtigungsnachweisen verwendet werden kann, z. B. Staging, Produktion.

Und ich möchte keine Anmeldeinformationen im Git Repo speichern.

Optionen:

  1. Umgebungsvariablen
  2. Uncomitted Konfigurationsdatei, die von Hand auf jede Umgebung erstellt wird
  3. Dies ist, wo ich
  4. die Ideen ausgehen
+0

Warum der Downvote? –

+0

Sie können eine config-dist-Datei festschreiben, die nur eine Liste von Konfigurationsparametern mit einem Standardwert speichert. Der Benutzer kann es dann umbenennen und nach der Installation bearbeiten. Sie können diesen Prozess sogar automatisieren mit [Installationsprogramm des Komponisten] (https://getcomposer.org/doc/articles/scripts.md#installer-events), wo Sie den Benutzer die Anmeldeinformationen beim Installieren/Aktualisieren mit dem Composer erfragen können. so dass Sie die Konfigurationsdatei automatisch generieren können. – Federkun

+0

Sie können dieses Paket ansehen: https://github.com/Incentev/ParameterHandler – Federkun

Antwort

0

Es sollte nicht die Aufgabe sein, des API-Client-Pakets für den Zugriff auf Anmeldeinformationen. Die einzige Möglichkeit für diesen Client, sie zu erhalten, sollte eine Klassenmethode als Parameter sein.

Dies kann in verschiedenen Geschmacksrichtungen kommen:

$client = new ApiClient($location, $user, $password); 
$client = ApiClientFactory::getInstance($location, $user, $password); 
... 

Beachten Sie, dass eine Instanz des API-Client Erstellen Teil der Pakete -Schnittstelle ist, so sollte es vorhanden ist, zu dokumentieren und nicht inkompatibel in Moll geändert werden Aktualisierung.

Die Bereitstellung der Anmeldeinformationen ist die Aufgabe der Anwendung, die dieses Paket verwendet.