Pytanie jest całkiem jasne.
php artisan cache:clear
Czy jest jakieś obejście, aby wyczyścić pamięć podręczną, jak powyżej, którego używamy w CLI. Korzystam z popularnej usługi hostingu współdzielonego, ale zgodnie z moim planem nie mam dostępu do panelu sterowania.
** Chcę wyczyścić pamięć podręczną widoków. **
Widziałem pytanie prawie takie samo jak to, ale to mi nie pomaga.
php
laravel-5
command-line-interface
Rinto George
źródło
źródło
Odpowiedzi:
Możesz wywołać polecenie rzemieślnika poza CLI.
Możesz sprawdzić oficjalny dokument tutaj http://laravel.com/docs/5.0/artisan#calling-commands-outside-of-cli
Aktualizacja
Nie ma możliwości usunięcia pamięci podręcznej widoku. Ani
php artisan cache:clear
tego robi.Jeśli naprawdę chcesz wyczyścić pamięć podręczną widoku, myślę, że musisz napisać własną
artisan
polecenie i wywołać je, jak powiedziałem wcześniej, lub całkowicie pominąćartisan
ścieżkę i wyczyścić pamięć podręczną widoku w jakiejś klasie, którą wywołujesz z kontrolera lub trasy.Ale moje prawdziwe pytanie brzmi: czy naprawdę musisz wyczyścić pamięć podręczną widoku ? W projekcie, nad którym teraz pracuję, mam prawie 100 widoków w pamięci podręcznej i ważą mniej niż 1 Mb, podczas gdy mój
vendor
katalog ma rozmiar> 40 Mb. Nie sądzę, aby pamięć podręczna widoku była prawdziwym wąskim gardłem w korzystaniu z dysku i nigdy nie miała prawdziwej potrzeby jej wyczyszczenia.Jeśli chodzi o pamięć podręczną aplikacji , jest ona przechowywana w
storage/framework/cache
katalogu, ale tylko wtedy, gdy skonfigurowałeśfile
sterownik wconfig/cache.php
. Możesz wybrać wiele różnych sterowników, takich jak Redis lub Memcached , aby poprawić wydajność w pamięci podręcznej opartej na plikach.źródło
cache:clear
Komenda działa z pamięci podręcznej aplikacji , ten, który jest dostępne zCache
elewacji.Mam nadzieję, że to komuś pomoże
Przejdź do,
laravelFolder/bootstrap/cache
a następnie zmień nazwęconfig.php
na dowolną, np.config.php_old
i przeładuj witrynę. To powinno działać jak voodoo.Miłego kodowania ...
źródło
cache
folder i.env
domyślną wartość pamięci podręcznej w pliku. Ale po usunięciu tego wszystkiego znowu pojawia się problem ... kiedyphp artisan optimize
. Wreszcie ten rozwiązał mój problem, nie zmieniając nazwy, ale zmieniając wartość klucza w pliku config.php. Dzięki @DeadGuyJak widzę: http://itsolutionstuff.com/post/laravel-5-clear-cache-from-route-view-config-and-all-cache-data-from-applicationexample.html
czy można użyć poniższego kodu z nowymi poleceniami czyszczenia pamięci podręcznej:
Nie jest konieczne, aby umożliwić każdemu wyczyszczenie pamięci podręcznych, szczególnie w środowisku produkcyjnym, więc proponuję skomentować te trasy i, gdy jest to konieczne, usunąć komentarz z kodu i uruchomić trasy.
źródło
Buforowanie konfiguracji Konfiguracja laravel jest rozłożona na dziesiątki plików, a
including
każdy z nich dla każdego żądania jest kosztownym procesem. Aby połączyć wszystkie pliki konfiguracyjne w jeden, użyj:Pamiętaj, że wszelkie zmiany w konfiguracji nie będą miały żadnego efektu po jej zbuforowaniu. Aby odświeżyć pamięć podręczną konfiguracji, uruchom ponownie powyższe polecenie. Jeśli chcesz całkowicie pozbyć się pamięci podręcznej konfiguracji, uruchom
Buforowanie tras Routing jest kosztownym zadaniem w laravel. Aby buforować plik route.php, uruchom poniższe polecenie:
Pamiętaj, że to nie działa z zamknięciami. Jeśli używasz domknięć, jest to świetna szansa na przeniesienie ich do kontrolera, ponieważ polecenie rzemieślnika zgłosi wyjątek podczas próby kompilowania tras, które są powiązane z domknięciami, zamiast odpowiednich metod kontrolera. Podobnie jak w przypadku pamięci podręcznej konfiguracji, wszelkie zmiany w route.php nie będą już miały żadnego wpływu. Aby odświeżyć pamięć podręczną, uruchom powyższe polecenie za każdym razem, gdy dokonujesz zmiany w pliku tras. Aby całkowicie pozbyć się pamięci podręcznej tras, uruchom poniższe polecenie:
Optymalizacja mapy klas
Często zdarza się, że średniej wielkości projekt jest rozłożony na setki plików PHP. Jak nakazują nam dobre zachowania kodowania, wszystko ma swój własny plik. Nie jest to oczywiście pozbawione wad. Laravel musi zawierać dziesiątki różnych plików dla każdego żądania, co jest kosztowną czynnością.
Dlatego dobrą metodą optymalizacji jest zadeklarowanie, które pliki są używane dla każdego żądania (są to na przykład wszyscy dostawcy usług, oprogramowanie pośredniczące i kilka innych) i połączenie ich w tylko jeden plik, który zostanie następnie załadowany dla każdego żądania. Nie różni się to od łączenia wszystkich plików javascript w jeden, więc przeglądarka będzie musiała wysyłać mniej żądań do serwera.
Dodatkowe pliki kompilacji (ponownie: dostawcy usług, oprogramowanie pośredniczące itd.) Powinny być zadeklarowane przez Ciebie w config / compile.php, w kluczu plików. Gdy umieścisz tam wszystko, co jest niezbędne dla każdego żądania skierowanego do Twojej aplikacji, połącz je w jednym pliku z:
Optymalizacja automatycznego ładowania kompozytora
Ten jest przeznaczony nie tylko dla laravel, ale dla każdej aplikacji korzystającej z kompozytora.
Najpierw wyjaśnię, jak działa automatyczne ładowanie PSR-4, a następnie pokażę, jakie polecenie należy uruchomić, aby go zoptymalizować. Jeśli nie chcesz wiedzieć, jak działa kompozytor, polecam przeskoczyć bezpośrednio do polecenia konsoli.
Kiedy pytasz kompozytora o
App\Controllers\AuthController
zajęcia, najpierw szuka on bezpośredniego skojarzenia w mapie klasy. Mapa klas to tablica z powiązaniami 1 do 1 klas i plików. Ponieważ, oczywiście, nie dodałeś ręcznie klasy Login i skojarzonego z nią pliku do mapy klas, composer przejdzie dalej i przeszuka przestrzenie nazw. Ponieważ aplikacja jest przestrzenią nazw PSR-4, która jest domyślnie dostarczana z Laravelem i jest powiązana zapp/
folderem, composer spróbuje przekonwertować nazwę klasy PSR-4 na nazwę pliku z podstawowymi procedurami manipulacji na ciągach. W końcu zgaduje, żeApp\Controllers\AuthController
musi znajdować się w pliku AuthController.php, który znajduje się wControllers/
folderze, który na szczęście powinien znajdować się w folderze przestrzeni nazw, którym jestapp/
.Cała ta ciężka praca polega tylko na tym, aby
App\Controllers\AuthController
klasa istniała wapp/Controllers/AuthController.php
pliku. Aby kompozytor przeskanował całą aplikację i utworzył bezpośrednie skojarzenia 1 do 1 klas i plików, uruchom następujące polecenie:Pamiętaj, że jeśli już uruchomiłeś php artisan optimize --force, nie musisz już tego uruchamiać. Ponieważ polecenie optymalizacji już nakazuje kompozytorowi utworzenie zoptymalizowanego automatycznego ładowania.
źródło
Ten pakiet jest przeznaczony dla php ^ 7.0 i ^ laravel5.5 .
Użyj tego pakietu w cronjob, który utworzyłem tylko w tym celu. Ja też miałem taką samą sytuację. https://packagist.org/packages/afrazahmad/clear-cached-data Zainstaluj i uruchom:
i automatycznie uruchomi następujące polecenia
Mam nadzieję, że to pomoże.
Jeśli chcesz uruchamiać go automatycznie o określonej godzinie, musisz najpierw skonfigurować crnjob. na przykład
W funkcji harmonogramu:
źródło
W Laravel 5.1 jest teraz polecenie do tego
źródło
Możesz połączyć się przez FTP i wyczyścić
storage\framework\views
folder dlalaravel 5
lubapp\storage\views
dlalaravel 4
.źródło
Aby wyczyścić całą pamięć podręczną poza CLI , zrób to; To działa dla mnie.
źródło
config:cache
wyczyści i zapisze konfigurację - więc myślę, że nie ma potrzeby dodawania obuwyczyści buforowane widoki
źródło
php artisan cache:clear
. Nie spowoduje to wyczyszczenia wyświetlanej pamięci podręcznej przechowywanej w folderze przechowywania, co jest dokładnie tym, czego potrzebujemy.Możesz to zrobić, jeśli używasz
Lumen
fromLaravel
w swoimroutes/web.php
pliku:źródło
Możesz to zrobić również przez router, podobnie jak odpowiedź Francesco, ale z mniejszym bałaganem w konfiguracji routera
Następnie uruchom je, odwiedzając http: //myapp.test/artisan/cache-clear itp. Jeśli chcesz dodać / edytować prawidłowe polecenia Artisan, po prostu zaktualizuj tablicę $ validCommands.
źródło
To zadziałało dla mnie. W swoim projekcie przejdź do: storage> framework> views. Usuń wszystkie znajdujące się tam pliki i odśwież stronę.
źródło
Spróbuj tego również
dla cli
php artisan clear: cache
do użytku polecenie rzemieślnika
});
[ https://www.tutsmake.com/laravel-clear-cache-using-artisan-command-cli/][1]
źródło
Użyłem tej strony kilka razy do skopiowania i wklejenia szybkich poleceń do kompozytora, więc napisałem polecenie, które wykonuje te polecenia w jednym poleceniu rzemieślnika.
Umieść w
app\Console\Commands\Admin
folderzenastępnie uruchom polecenie w programie Composer
php artisan traqza:clear-everything
Miłego kodowania.
Github -> https://github.com/Traqza/clear-everything
źródło
Chociaż zdecydowanie nie zgadzam się z pomysłem uruchamiania aplikacji laravel na hostingu współdzielonym (ogólnie zły pomysł), ten pakiet prawdopodobnie rozwiązałby twój problem. Jest to pakiet, który umożliwia uruchamianie niektórych poleceń rzemieślniczych z Internetu. Jest daleki od ideału, ale może działać w niektórych przypadkach.
https://github.com/recca0120/laravel-terminal
źródło
Cache :: flush (); https://laravel.com/docs/5.7/cache#events Ta praca w klasie Handler rozszerza ExceptionHandler
źródło
Uważam, że bardziej wydajnym podejściem jest użycie modułu zadań cron w panelu administracyjnym serwera współdzielonego, aby uruchomić polecenie laravel Scheduler, które z kolei wywoła skonfigurowane polecenie rzemieślnika, coś takiego powinno wykonać zadanie:
Dzięki konfiguracji harmonogramu w cronie możesz edytować metodę harmonogramu w \ App \ Console \ Kernel.php, aby wywołać odpowiednie polecenie rzemieślnika, coś takiego:
Zawsze możesz usunąć powyższe wiersze po uruchomieniu poleceń
źródło