Die Frage ist ziemlich klar.
php artisan cache:clear
Gibt es eine Problemumgehung, um den Cache wie oben in CLI zu löschen? Ich verwende einen beliebten Shared Hosting-Dienst, habe aber gemäß meinem Plan keinen Zugriff auf das Control Panel.
** Ich möchte den Ansichts-Cache leeren. **
Ich habe eine fast gleiche Frage gesehen , aber sie hilft mir nicht.
php
laravel-5
command-line-interface
Rinto George
quelle
quelle
Antworten:
Sie können einen Artisan-Befehl außerhalb der CLI aufrufen.
Sie können das offizielle Dokument hier http://laravel.com/docs/5.0/artisan#calling-commands-outside-of-cli überprüfen
Aktualisieren
Es gibt keine Möglichkeit, den Ansichtscache zu löschen. Das
php artisan cache:clear
tut es auch nicht.Wenn Sie den Ansichts-Cache wirklich löschen möchten, müssen Sie Ihren eigenen
artisan
Befehl schreiben und ihn wie oben beschrieben aufrufen oder denartisan
Pfad vollständig überspringen und den Ansichts-Cache in einer Klasse löschen, die Sie von einem Controller oder einer Route aus aufrufen.Meine eigentliche Frage ist jedoch, ob Sie den Ansichts-Cache wirklich leeren müssen . In einem Projekt, an dem ich gerade arbeite, habe ich fast 100 zwischengespeicherte Ansichten und sie wiegen weniger als 1 MB, während mein
vendor
Verzeichnis> 40 MB ist. Ich denke nicht, dass der Ansichts-Cache ein echter Engpass bei der Festplattennutzung ist und nie wirklich gelöscht werden musste.Der Anwendungscache wird im
storage/framework/cache
Verzeichnis gespeichert , jedoch nur, wenn Sie denfile
Treiber in konfiguriert habenconfig/cache.php
. Sie können viele verschiedene Treiber wie Redis oder Memcached auswählen , um die Leistung gegenüber einem dateibasierten Cache zu verbessern.quelle
cache:clear
Befehl arbeitet mit dem Anwendungscache , auf den von derCache
Fassade aus zugegriffen wird .Ich hoffe das hilft jemandem
Gehen Sie zu
laravelFolder/bootstrap/cache
und benennenconfig.php
Sie dann in etwas um, das Sie möchten, z.config.php_old
und laden Sie Ihre Website neu. Das sollte wie Voodoo funktionieren.Viel Spaß beim Codieren ...
quelle
cache
Ordner und den.env
Standard-Cache-Wert der Datei entfernt . Aber nach dem Löschen all dieser Probleme immer wieder .. wannphp artisan optimize
. Schließlich löste dieses mein Problem, nicht durch Umbenennen, sondern durch Ändern des Schlüsselwerts in der Datei config.php. Vielen Dank @DeadGuyWie ich sehen kann: http://itsolutionstuff.com/post/laravel-5-clear-cache-from-route-view-config-and-all-cache-data-from-applicationexample.html
Ist es möglich, den folgenden Code mit den neuen Befehlen zum Löschen des Cache zu verwenden:
Es ist nicht erforderlich, die Möglichkeit zu geben, die Caches für alle zu löschen, insbesondere in einer Produktionsumgebung. Daher empfehle ich, diese Routen zu kommentieren und bei Bedarf den Code zu dekommentieren und die Routen auszuführen.
quelle
Konfigurations-Caching Die Laravel-Konfiguration erstreckt sich über Dutzende von Dateien, und
including
jede einzelne für jede Anforderung ist ein kostspieliger Prozess. Verwenden Sie Folgendes, um alle Konfigurationsdateien in einer zu kombinieren:Beachten Sie, dass Änderungen an der Konfiguration nach dem Zwischenspeichern keine Auswirkungen mehr haben. Führen Sie den obigen Befehl erneut aus, um den Konfigurationscache zu aktualisieren. Wenn Sie den Konfigurationscache vollständig entfernen möchten, führen Sie ihn aus
Routing- Caching Routing ist auch in Laravel eine teure Aufgabe. Führen Sie den folgenden Befehl aus, um die Datei route.php zwischenzuspeichern:
Beachten Sie, dass es mit Verschlüssen nicht funktioniert. Wenn Sie Closures verwenden, ist dies eine gute Möglichkeit, diese in einen Controller zu verschieben, da der Befehl artisan eine Ausnahme auslöst, wenn versucht wird, Routen zu kompilieren, die an Closures gebunden sind, anstatt geeignete Controller-Methoden. Wie im Konfigurationscache haben Änderungen an route.php keine Auswirkungen mehr. Führen Sie den obigen Befehl jedes Mal aus, wenn Sie Änderungen an der Routendatei vornehmen, um den Cache zu aktualisieren. Führen Sie den folgenden Befehl aus, um den Routen-Cache vollständig zu entfernen:
Klassenkartenoptimierung
Es ist nicht ungewöhnlich, dass ein mittelgroßes Projekt auf Hunderte von PHP-Dateien verteilt ist. Wie es uns ein gutes Codierungsverhalten vorschreibt, hat alles seine eigene Datei. Dies ist natürlich nicht ohne Nachteile. Laravel muss für jede Anfrage Dutzende verschiedener Dateien einschließen, was eine kostspielige Sache ist.
Eine gute Optimierungsmethode besteht daher darin, zu deklarieren, welche Dateien für jede Anforderung verwendet werden (dies sind beispielsweise alle Ihre Dienstanbieter, Middlewares und einige weitere), und diese in nur einer Datei zu kombinieren, die anschließend für jede Anforderung geladen wird. Dies unterscheidet sich nicht von der Kombination aller Ihrer Javascript-Dateien zu einer, sodass der Browser weniger Anforderungen an den Server stellen muss.
Die zusätzlichen Kompilierungsdateien (wieder: Dienstanbieter, Middlewares usw.) sollten von Ihnen in config / compile.php im Dateischlüssel deklariert werden. Wenn Sie dort alles Notwendige für jede Anfrage an Ihre App abgelegt haben, verknüpfen Sie sie in einer Datei mit:
Optimieren des automatischen Ladens des Komponisten
Dieser ist nicht nur für Laravel gedacht, sondern für jede Anwendung, die Composer verwendet.
Ich werde zuerst erklären, wie das automatische Laden des PSR-4 funktioniert, und dann werde ich Ihnen zeigen, welchen Befehl Sie ausführen sollten, um es zu optimieren. Wenn Sie nicht wissen möchten, wie Composer funktioniert, empfehlen wir Ihnen, direkt zum Konsolenbefehl zu springen.
Wenn Sie den Komponisten nach der
App\Controllers\AuthController
Klasse fragen , sucht er zuerst nach einer direkten Zuordnung in der Klassenzuordnung. Die Klassenzuordnung ist ein Array mit 1: 1-Zuordnungen von Klassen und Dateien. Da Sie die Login-Klasse und die zugehörige Datei natürlich nicht manuell zur Klassenzuordnung hinzugefügt haben, fährt Composer fort und sucht in den Namespaces. Da App ein PSR-4-Namespace ist, der standardmäßig mit Laravel geliefert wird und demapp/
Ordner zugeordnet ist, versucht Composer, den PSR-4-Klassennamen mit grundlegenden Verfahren zur Zeichenfolgenmanipulation in einen Dateinamen zu konvertieren. Am Ende wird vermutet,App\Controllers\AuthController
dass sich diese in einer AuthController.php-Datei befinden muss, die sich in einemControllers/
Ordner befindet, der sich zum Glück im Namespace-Ordner befinden sollteapp/
.All diese harte Arbeit nur, um sicherzustellen, dass die
App\Controllers\AuthController
Klasse in derapp/Controllers/AuthController.php
Datei vorhanden ist. Führen Sie den folgenden Befehl aus, damit Composer Ihre gesamte Anwendung scannt und direkte 1: 1-Zuordnungen von Klassen und Dateien erstellt:Denken Sie daran, dass Sie diese nicht mehr ausführen müssen, wenn Sie PHP Artisan Optimize --force bereits ausgeführt haben. Da der Befehl optimize den Komponisten bereits anweist, ein optimiertes Autoload zu erstellen.
quelle
Dieses Paket ist für PHP ^ 7.0 und ^ Laravel5.5 .
Verwenden Sie dieses Paket in Cronjob , den ich nur für diesen Zweck erstellt habe. Ich war auch mit der gleichen Situation konfrontiert. https://packagist.org/packages/afrazahmad/clear-cached-data Installieren Sie es und führen Sie es aus:
Die folgenden Befehle werden automatisch ausgeführt
Ich hoffe es hilft.
Wenn Sie es zu einem bestimmten Zeitpunkt automatisch ausführen möchten, müssen Sie zuerst crnjob einrichten. z.B
In der Zeitplanfunktion:
quelle
Dafür gibt es jetzt in Laravel 5.1 einen Befehl
quelle
Sie können eine Verbindung über FTP herstellen und den
storage\framework\views
Ordner fürlaravel 5
oderapp\storage\views
für löschenlaravel 4
.quelle
Gehen Sie folgendermaßen vor , um den gesamten Cache außerhalb der CLI zu löschen . Das funktioniert bei mir.
quelle
config:cache
wird die Konfiguration löschen und zwischenspeichern - ich denke, es ist nicht nötig, beide hinzuzufügenlöscht die zwischengespeicherten Ansichten
quelle
php artisan cache:clear
wird gefragt. Dadurch wird der im Speicherordner gespeicherte angezeigte Cache nicht gelöscht. Dies ist genau das, was benötigt wird.Sie können dies tun, wenn Sie
Lumen
vonLaravel
in Ihrerroutes/web.php
Datei verwenden:quelle
Sie können dies auch über einen Router tun, ähnlich wie bei Francesco, jedoch mit weniger Unordnung in der Routerkonfiguration
Führen Sie sie dann über http: //myapp.test/artisan/cache-clear usw. aus. Wenn Sie gültige Artisan-Befehle hinzufügen / bearbeiten müssen, aktualisieren Sie einfach das Array $ validCommands.
quelle
Das hat bei mir funktioniert. Gehen Sie in Ihrem Projekt zu: Speicher> Framework> Ansichten. Löschen Sie alle Dateien dort und aktualisieren Sie Ihre Seite.
quelle
Versuchen Sie dies auch
für cli
PHP Artisan klar: Cache
zur Verwendung handwerklicher Befehl
});
[ https://www.tutsmake.com/laravel-clear-cache-using-artisan-command-cli/ weibliches [1 ]
quelle
Ich habe diese Seite einige Male verwendet, um Schnellbefehle zu kopieren und in den Composer einzufügen. Daher habe ich einen Befehl geschrieben, der diese Befehle in einem einzigen handwerklichen Befehl ausführt.
In
app\Console\Commands\Admin
Ordner legenFühren Sie dann den Befehl in Composer aus
php artisan traqza:clear-everything
Viel Spaß beim Codieren.
Github -> https://github.com/Traqza/clear-everything
quelle
Obwohl ich der Idee, eine Laravel-App auf Shared Hosting auszuführen, überhaupt nicht zustimme (eine schlechte Idee), würde dieses Paket wahrscheinlich Ihr Problem lösen. Es ist ein Paket, mit dem Sie einige handwerkliche Befehle aus dem Web ausführen können. Es ist alles andere als perfekt, kann aber für einige Anwendungsfälle funktionieren.
https://github.com/recca0120/laravel-terminal
quelle
Cache :: flush (); https://laravel.com/docs/5.7/cache#events Diese Arbeit in der Klasse Handler erweitert ExceptionHandler
quelle
Ich glaube, der effizientere Ansatz besteht darin, das Cron-Jobmodul im Admin-Bereich des gemeinsam genutzten Servers zu verwenden, um den Laravel-Scheduler-Befehl auszuführen, der wiederum den konfigurierten Artisan-Befehl aufruft. So etwas sollte den Job erledigen:
Mit dem Scheduler-Setup in cron können Sie die Schedule-Methode in \ App \ Console \ Kernel.php bearbeiten , um den richtigen handwerklichen Befehl aufzurufen.
Sie können die obigen Zeilen jederzeit löschen, nachdem die Befehle ausgeführt wurden
quelle