Ich habe eine neue Symfony-Installation mit Symfony Flex durchgeführt und das neue Skelett gehört zur nächsten Symfony 4-Verzeichnisstruktur.
Ich füge ein erstes Drittanbieter-Bundle hinzu und konfiguriere es: HWIOAuthBundle . Dieses Bündel wird verwendet, um über Twitter mit zwei geheimen Informationen zu verbinden.
Ich deklariere mein consumer_id
und mein consumer_secret
in der config/packages/hwi_oauth.yaml
Datei.
Meine Anwendung funktioniert einwandfrei. Aber ich kann meine Geheimnisse auf GitHub nicht begehen!
Ich möchte eine hwi_oauth.yaml
Datei wie diese haben:
Ich lese die Symfony4 Best Practices über das neue DotEnv-Paket.
Die Verwendung von Umgebungsvariablen ist zwar nicht perfekt, hat aber viele Vorteile gegenüber dem, was wir derzeit tun. Umgebungsvariablen sind eine "Standard" -Methode zum Verwalten von Einstellungen, die von der Umgebung abhängen (es ist nicht erforderlich, beispielsweise eine parameter.yml.dist zu verwalten).
Wie in den Best Practices vorgeschlagen, füge ich diese beiden Zeilen an .env
file an:
Aber ich habe diesen Fehler gefunden:
Sie haben einen nicht vorhandenen Parameter "twitter_consumer_id" angefordert.
Ich habe versucht mit %kernel.twitter_consumer_id%
, %env.twitter_consumer_id%
, %env(TWITTER_CONSUMER_ID)%
ohne Erfolg.
Der letzte Test gibt diese Fehlermeldung zurück:
Beim Rendern einer Vorlage wurde eine Ausnahme ausgelöst ("Umgebungsvariable nicht gefunden:" TWITTER_CONSUMER_ID ".").
Wie kann ich meine ENV-Variablen in einer Parameterdatei wie hwi_oauth.yaml
?
Sie müssen die .env
-Datei während des Bootstrap-Prozesses laden, damit diese Umgebungsvariablen verfügbar sind:
Sie sollten planen, geheime Schlüssel in Umgebungsvariablen für Entwicklung, Bereitstellung und Produktion zu legen. Wie Sie das machen, hängt jedoch davon ab. In der Entwicklung und im Staging verwenden Sie vielleicht .env
files, während Sie während der Produktion Apache zum injizieren verwenden.
Persönlich verwende ich immer .env
Dateien, und ich behalte ein leeres in meinem Repository. Auf diese Weise ist die Bereitstellung sehr einfach und es gibt keine speziellen Fälle.
Wenn Sie .env
-Dateien nur in bestimmten Umgebungen verwenden möchten, können Sie Folgendes tun:
Tags und Links php symfony environment-variables symfony4 symfony-flex