Framework: Config:cache für die standardmäßige Laravel-Konfiguration erstellt absolute Pfade

Erstellt am 12. Feb. 2016  ·  3Kommentare  ·  Quelle: laravel/framework

Mir ist aufgefallen, dass beim Ausführen php artisan config:cache der resultierende Cache absolute Pfade hat, da standardmäßig einige storage_path() -Aufrufe in Laravel-Konfigurationsdateien vorhanden sind.

Ich habe die Dokumentation gelesen:

Normalerweise sollten Sie den Befehl php artisan config:cache als Teil Ihrer Produktionsbereitstellungsroutine ausführen.

Die Dokumentation sagt nicht, dass ich den Befehl auf dem Server und nicht auf meinem automatisierten CI-Build-Agent ausführen soll. Aber nicht jeder hat Zugriff auf den php artisan config:cache -Befehl auf seinen Servern, um ihn remote vom CI-Build-Agent auszuführen.

Ich denke, die Dokumentation sollte aktualisiert werden, um die Anforderung zum Ausführen des Befehls auf dem Server widerzuspiegeln.
Es wäre jedoch noch besser, einen Weg zu implementieren, um einen Konfigurationscache mit relativen Pfaden zu generieren.

Derzeit könnte ich eine Problemumgehung für das Problem hinzufügen und einen PHP-Controller erstellen, der handwerkliche Befehle ausführt, und ihn während der Bereitstellung aufrufen. Das Problem ist jedoch, dass die Bereitstellung auf unserem Server so eingerichtet ist, dass sie über Git-Push funktioniert, und erst nach wenigen Minuten wird die Website mit der aktuellen Version im Repository synchronisiert. Ich denke nicht, dass es eine gute Idee wäre, einfach in meinem CI-Bereitstellungsskript zu sitzen und auf eine unbekannte Zeit zu warten, nur um die URL zu meinem benutzerdefinierten Controller aufrufen zu können, der wiederum php artisan config:cache ausführt.

Wir sind also wieder bei der Frage – wie werden die Pfade in Konfigurationsdateien relativ zum App-Root erstellt und eine zwischengespeicherte Konfiguration generiert, die mit relativen Pfaden funktioniert?

Hilfreichster Kommentar

In dem oben erwähnten Zitat aus der Laravel-Dokumentation bedeutet "Bereitstellungsroutine" nicht explizit, dass der Cache-Befehl auf dem Server ausgeführt werden muss und nicht in dem Ordner, der bereitgestellt werden soll. Daher denke ich, dass es sich lohnt, diesen Satz zu erweitern, damit die Leute keine falschen Annahmen treffen (wie ich es getan habe).

Wie auch immer, es ist eine Schande, dass wir in Konfigurationsdateien keine relativen Pfade anstelle von storage_path() verwenden können. Dies würde die Dinge für automatische CI-Bereitstellungen viel einfacher machen.

Alle 3 Kommentare

Sie müssen Composer und unsere Optimierungsbefehle auf Ihrem Server ausführen, nicht vor der Bereitstellung.

In dem oben erwähnten Zitat aus der Laravel-Dokumentation bedeutet "Bereitstellungsroutine" nicht explizit, dass der Cache-Befehl auf dem Server ausgeführt werden muss und nicht in dem Ordner, der bereitgestellt werden soll. Daher denke ich, dass es sich lohnt, diesen Satz zu erweitern, damit die Leute keine falschen Annahmen treffen (wie ich es getan habe).

Wie auch immer, es ist eine Schande, dass wir in Konfigurationsdateien keine relativen Pfade anstelle von storage_path() verwenden können. Dies würde die Dinge für automatische CI-Bereitstellungen viel einfacher machen.

Ja, deshalb heißt es in der Dokumentation "Bereitstellungsroutine", nicht "Build-Routine" ...

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

Fuzzyma picture Fuzzyma  ·  3Kommentare

gabriellimo picture gabriellimo  ·  3Kommentare

klimentLambevski picture klimentLambevski  ·  3Kommentare

Anahkiasen picture Anahkiasen  ·  3Kommentare

JamborJan picture JamborJan  ·  3Kommentare