Laravel upgrade documentation 5,2-5,3 gibt die folgenden:Warum wird "dringend empfohlen", den Helfer env() nicht zu verwenden, wenn Konfigurationsdateien zwischengespeichert werden?
Caching und env
Wenn Sie den
config:cache
Befehl während der Bereitstellung verwenden, müssen Sie sicherstellen, dass Sie nur dieenv
Funktion aufrufen von innerhalb Ihrer Konfigurationsdateien, und nicht von irgendwo sonst in Ihrer Anwendung.Wenn Sie
env
aus Ihrer Anwendung aufrufen, wird nachdrücklich empfohlen, empfohlen, dass Sie die richtige Konfiguration Werte Ihrer Konfiguration Dateien hinzufügen und rufenenv
von diesem Ort statt, so dass Sie Ihreenv
Anrufe konvertieren Anrufe config .
Die Frage, die die Dokumentation nicht beantwortet, ist: warum?
Sollten nicht die env()
Helfer, wenn innerhalb der Anwendung, noch ordnungsgemäß verwendet arbeiten? Kann ich nicht noch env()
verwenden, nachdem die Konfiguration im Cache gespeichert wurde, anstatt gezwungen zu sein, sie in meinem gesamten Projekt zu finden und durch den Helfer config()
zu ersetzen, wie (indirekt) von den Dokumenten vorgeschlagen?
Zum Beispiel, wenn ich dies habe in meinem app.php:
'env' => env('APP_ENV', 'production')
und es wird mit config:cache
zwischengespeichert, aber ich immer noch die env()
Helfer irgendwo im Code verwenden, dann ist es eine Grund überhaupt, dass env('APP_ENV')
mir etwas anderes geben würde als die config('app.env')
?
Und wie wäre es mit dem App::environment()
Anruf - wird es auch nicht empfohlen, nachdem config:cache
auf Produktion verwendet wird?
Hallo, ich verstehe das Caching-Konzept, es ist definitiv gut zu verwenden, aber die eigentliche Frage ist: Warum verhindern die Docs den 'env()' Helfer direkt nach dem die Konfiguration zwischengespeichert wird? Was ist der Grund dafür? Selbst wenn config gecached wird, sollte der Helfer 'env()' immer noch direkt auf die Datei **. Env ** zugreifen. Wenn das der Fall ist, was ist das Problem mit 'env()'? Und wenn es wirklich keine gibt, warum wird dann vorgeschlagen, all diese 'env()' Vorkommnisse zu finden und sie gegen 'config()' zu tauschen? – lesssugar
@lesssugar Das liegt daran, dass 'config: cache' für die Produktion gedacht ist. Ist ein Weg, um eine gute Leistung in dieser Umgebung zu garantieren. – Asur