질문은 아주 명확합니다.
php artisan cache:clear
CLI를 사용하지 않고 위의 명령어와 같이 캐시를 클리어하기 위한 회피책이 있습니까?인기 있는 공유 호스팅 서비스를 사용하고 있습니다만, 계획에 따라 제어판에 액세스 할 수 없습니다.
뷰 캐시를 지우고 싶습니다.
이런 질문을 봤는데 도움이 안 돼요.
질문에 대한 답변
CLI 외부에서 Artisan 명령을 호출할 수 있습니다.
Route::get('/clear-cache', function() {
$exitCode = Artisan::call('cache:clear');
// return what you want });
공식 문서는 http://laravel.com/docs/5.0/artisan#calling-commands-outside-of-cli 에서 확인할 수 있습니다.
갱신하다
뷰 캐시를 삭제할 수 없습니다.둘 다 아니다.php artisan cache:clear
그렇게 해요.
뷰 캐시를 지우려면 직접 작성해야 합니다.artisan
명령어 및 호출은 이전에 말한 바와 같습니다.아니면 명령어를 완전히 건너뜁니다.artisan
컨트롤러 또는 경로에서 호출한 일부 클래스의 뷰 캐시를 경로 및 클리어합니다.
하지만 정말 궁금한 점은 뷰 캐시를 지울 필요가 있느냐는 것입니다.현재 작업 중인 프로젝트에서는 캐시된 뷰가 거의 100개이고 무게는 1Mb 미만입니다.vendor
디렉토리는 40 Mb를 넘습니다.View 캐시는 디스크 사용률의 실제 병목현상이 아니며, 실제로 삭제할 필요가 없다고 생각합니다.
애플리케이션 캐시에 대해서는, 이 캐시는,storage/framework/cache
디렉토리(단, confirst-directory)가 됩니다.file
을 몰아넣다config/cache.php
. Redis나 Memcached 등 다양한 드라이버를 선택하여 파일 기반 캐시보다 성능을 향상시킬 수 있습니다.
에 가다laravelFolder/bootstrap/cache
그런 다음 이름을 바꿉니다.config.php
당신이 원하는 모든 것, 예를 들어. config.php_old
사이트를 새로고침합니다.부두교처럼 될 거야
보시는 바와 같이 http://itsolutionstuff.com/post/laravel-5-clear-cache-from-route-view-config-and-all-cache-data-from-applicationexample.html
새로운 clear cache 명령어로 다음 코드를 사용할 수 있습니다.
//Clear Cache facade value: Route::get('/clear-cache', function() {
$exitCode = Artisan::call('cache:clear');
return '<h1>Cache facade value cleared</h1>'; });
//Reoptimized class loader: Route::get('/optimize', function() {
$exitCode = Artisan::call('optimize');
return '<h1>Reoptimized class loader</h1>'; });
//Route cache: Route::get('/route-cache', function() {
$exitCode = Artisan::call('route:cache');
return '<h1>Routes cached</h1>'; });
//Clear Route cache: Route::get('/route-clear', function() {
$exitCode = Artisan::call('route:clear');
return '<h1>Route cache cleared</h1>'; });
//Clear View cache: Route::get('/view-clear', function() {
$exitCode = Artisan::call('view:clear');
return '<h1>View cache cleared</h1>'; });
//Clear Config cache: Route::get('/config-cache', function() {
$exitCode = Artisan::call('config:cache');
return '<h1>Clear Config cleared</h1>'; });
특히 실가동 환경에서 모든 사람에게 캐시를 클리어할 수 있도록 할 필요는 없기 때문에 그 루트에 코멘트를 달아 필요에 따라서 코드의 코멘트를 해제해 루트를 실행하는 것을 추천합니다.
구성 캐싱 일반 구성은 수십 개의 파일로 분산되어 있습니다.including
각 요청마다 비용이 많이 드는 프로세스입니다.모든 Configuration파일을 1개의 파일로 조합하려면 다음 명령을 사용합니다.
php artisan config:cache
설정을 캐시해도 변경은 영향을 주지 않는다는 점에 주의해 주세요.설정 캐시를 새로 고치려면 위의 명령을 다시 실행합니다.컨피규레이션캐시를 완전히 삭제하려면
php artisan config:clear
루트를 캐싱하는 것도 비용이 많이 드는 작업입니다.루트를 캐시합니다.php 파일은 다음 명령을 실행합니다.
php artisan route:cache
닫힘 상태에서는 작동하지 않는다는 점에 유의하십시오.클로저를 사용하는 경우 적절한 컨트롤러 메서드가 아닌 클로저에 바인드된 루트를 컴파일하려고 할 때 장인 명령어가 예외를 발생시키므로 컨트롤러로 이동할 수 있는 좋은 기회입니다.설정 캐시와 마찬가지로 루트가 변경됩니다.php는 더 이상 효과가 없습니다.캐시를 새로 고치려면 루트 파일을 변경할 때마다 위의 명령을 실행하십시오.루트 캐시를 완전히 삭제하려면 다음 명령을 수행합니다.
php artisan route:clear
클래스 맵 최적화
중간 규모의 프로젝트가 수백 개의 PHP 파일에 분산되는 것은 드문 일이 아닙니다.좋은 코딩 행동이 우리에게 지시하듯이, 모든 일에는 고유한 파일이 있습니다.물론 이것은 결점이 없는 것은 아니다.Laravel은 각 요청에 대해 수십 개의 다른 파일을 포함해야 하는데, 이는 비용이 많이 드는 작업입니다.
따라서 모든 요구에 사용되는 파일(예를 들어 모든 서비스 프로바이더, 미들웨어 등)을 선언하고 그것들을 1개의 파일에만 조합하는 것이 좋습니다.이 파일은 나중에 각 요구에 대해 로드됩니다.이는 모든 javascript 파일을 하나로 결합하는 것과 다르지 않기 때문에 브라우저는 서버에 대한 요청을 줄일 수 있습니다.
추가 컴파일 파일(서비스 프로바이더, 미들웨어 등)은 구성/컴파일로 선언해야 합니다.php, 파일 키에 있습니다.앱에 대한 모든 요청에 필요한 모든 정보를 포함하면 다음 파일과 연결합니다.
php artisan optimize --force
컴포저 자동 로드 최적화
이는 라라벨뿐만 아니라 작곡가를 사용하는 모든 응용 프로그램에도 적용됩니다.
먼저 PSR-4 자동 로드의 구조에 대해 설명하고 다음으로 PSR-4를 최적화하기 위해 실행해야 할 명령어를 나타냅니다.composer가 어떻게 작동하는지 알고 싶지 않다면 console 명령어로 바로 이동할 것을 권장합니다.
작곡가에게 부탁할 때AppControllersAuthController
class는 먼저 클래스 맵 내의 직접 어소시에이션을 검색합니다.클래스 맵은 클래스 및 파일의 1:1 어소시에이션이 있는 배열입니다.물론 Login 클래스와 관련된 파일을 클래스 맵에 수동으로 추가한 것은 아니기 때문에 컴포저는 네임스페이스로 이동하여 검색합니다.앱은 PSR-4 네임스페이스로, 기본적으로 Larabel과 함께 제공되며 이 네임스페이스는app/
폴더, composer는 PSR-4 클래스 이름을 기본 문자열 조작 절차를 사용하여 파일 이름으로 변환합니다.결국, 그것은 추측이다.AppControllersAuthController
AuthController.php 파일에 있어야 합니다.이 파일은Controllers/
네임스페이스 폴더에 있어야 할 폴더입니다.app/
.
이 모든 고생이 결국 그걸 얻기 위해AppControllersAuthController
클래스는 에 존재합니다.app/Controllers/AuthController.php
file. composer가 전체 응용 프로그램을 스캔하고 클래스 및 파일의 직접 1:1 연결을 작성하려면 다음 명령을 실행합니다.
composer dumpautoload -o
이미 php artisman optimize –force를 실행했다면 더 이상 실행할 필요가 없다는 점에 유의하십시오.optimize 명령어는 이미 컴포넌트에게 최적화된 자동 로드를 생성하도록 지시하기 때문입니다.
이 패키지는 php ^7.0 및 ^laravel 5.5용입니다.
이 목적으로만 작성한 cronjob에서 이 패키지를 사용합니다.나도 같은 상황에 처해 있었다.https://packagist.org/packages/afrazahmad/clear-cached-data 설치 후 다음 작업을 수행합니다.
php artisan clear:data
다음 명령어가 자동으로 실행됩니다.
php artisan cache:clear php artisan view:clear php artisan route:clear php artisan clear-compiled php artisan config:cache
도움이 됐으면 좋겠다.
특정 시간에 자동으로 실행하려면 먼저 cronjob을 설정해야 합니다.
in app/console/kernel.php
스케줄 함수:
$schedule->command('clear:data')->dailyAt('07:00');