[php] Laravel 5 – 공유 호스팅 서버에서 캐시 지우기

질문은 아주 분명합니다.

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이며 디렉토리는 40Mb를 초과 합니다. 저는 뷰 캐시가 디스크 사용에있어 실제 병목 현상이 아니라고 생각하지 않습니다.

에 관해서는 응용 프로그램 캐시 , 그것은에 저장되어있는 storage/framework/cache디렉토리,하지만 당신은 구성된 경우에만 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 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>';
});

특히 프로덕션 환경에서 모든 사람에게 캐시를 지울 수있는 가능성을 줄 필요는 없으므로 해당 경로에 대해 주석을 달고 필요한 경우 코드의 주석을 해제하고 경로를 실행하는 것이 좋습니다.


답변

구성 캐싱
laravel 구성은 수십 개의 파일에 분산되어 있으며 including각 요청에 대한 모든 파일 은 비용이 많이 드는 프로세스입니다. 모든 구성 파일을 하나로 결합하려면 다음을 사용하십시오.

php artisan config:cache

구성에 대한 변경 사항은 캐시 한 후에는 영향을 미치지 않습니다. 구성 캐시를 새로 고치려면 위의 명령을 다시 실행하십시오. 구성 캐시를 완전히 제거하려면 다음을 실행하십시오.

php artisan config:clear

경로 캐싱
라우팅은 또한 laravel에서 비용이 많이 드는 작업입니다. route.php 파일을 캐시하려면 아래 명령을 실행하십시오.

php artisan route:cache

클로저에서는 작동하지 않습니다. 클로저를 사용하는 경우 적절한 컨트롤러 메서드 대신 클로저에 바인딩 된 라우트를 컴파일하려고 할 때 artisan 명령이 예외를 throw하므로 클로저를 컨트롤러로 이동할 수있는 좋은 기회입니다. 설정 캐시와 동일하게, route.php에 대한 변경 사항은 더 이상 영향을 미치지 않습니다. 캐시를 새로 고치려면 경로 파일을 변경할 때마다 위의 명령을 실행하십시오. 경로 캐시를 완전히 제거하려면 아래 명령을 실행하십시오.

php artisan route:clear

클래스 맵 최적화

중간 규모의 프로젝트가 수백 개의 PHP 파일에 퍼지는 것은 드문 일이 아닙니다. 좋은 코딩 행동이 우리를 지시하기 때문에 모든 것이 자체 파일을 가지고 있습니다. 물론 이것은 단점없이 오지 않습니다. Laravel은 각 요청에 대해 수십 개의 서로 다른 파일을 포함해야하므로 비용이 많이 듭니다.

따라서 좋은 최적화 방법은 모든 요청에 ​​사용되는 파일 (예 : 모든 서비스 제공 업체, 미들웨어 등)을 선언하고이를 하나의 파일로 결합하여 나중에 각 요청에 대해로드되는 것입니다. 이것은 모든 자바 스크립트 파일을 하나로 결합하는 것과 다르지 않으므로 브라우저는 서버에 대한 요청을 줄여야합니다.

추가 컴파일 파일 (다시 말하면 서비스 제공 업체, 미들웨어 등)은 config / compile.php의 파일 키에 선언해야합니다. 앱에 대한 모든 요청에 ​​필요한 모든 것을 여기에 넣으면 다음을 사용하여 하나의 파일에 연결합니다.

php artisan optimize --force

작곡가 자동로드 최적화

이것은 laravel뿐만 아니라 composer를 사용하는 모든 응용 프로그램을위한 것입니다.

먼저 PSR-4 자동로드가 어떻게 작동하는지 설명한 다음이를 최적화하기 위해 어떤 명령을 실행해야하는지 보여 드리겠습니다. 작곡가가 어떻게 작동하는지에 관심이 없다면 콘솔 명령으로 바로 이동하는 것이 좋습니다.

composer에게 App\Controllers\AuthController클래스 를 요청 하면 먼저 클래스 맵에서 직접 연관을 검색합니다. 클래스 맵은 클래스와 파일이 일대일로 연결된 배열입니다. 물론 Login 클래스와 관련 파일을 클래스 맵에 수동으로 추가하지 않았기 때문에 composer는 네임 스페이스에서 이동하여 검색합니다. App은 기본적으로 Laravel과 함께 제공되고 app/폴더에 연결되는 PSR-4 네임 스페이스이므로 composer는 기본 문자열 조작 절차를 사용하여 PSR-4 클래스 이름을 파일 이름으로 변환하려고합니다. 결국 App\Controllers\AuthControllerAuthController.php 파일에 있어야 한다고 추측 합니다.이 파일 Controllers/은 운 좋게도 네임 스페이스 폴더 인 app/.

이 모든 노력은 App\Controllers\AuthController클래스가 app/Controllers/AuthController.php파일에 존재 하는지 확인하는 것 입니다. composer가 전체 애플리케이션을 스캔하고 클래스 및 파일의 직접적인 일대일 연결을 만들려면 다음 명령을 실행합니다.

composer dumpautoload -o

이미 php artisan optimize –force를 실행했다면 더 이상 실행할 필요가 없습니다. 최적화 명령은 이미 composer에게 최적화 된 자동로드를 생성하도록 지시하기 때문입니다.


답변

이 패키지는 php ^ 7.0 및 ^ laravel5.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

도움이 되었기를 바랍니다.

특정 시간에 자동으로 실행하려면 먼저 crnjob을 설정해야합니다. 예 :

 in app/console/kernel.php

일정 기능에서 :

$schedule->command('clear:data')->dailyAt('07:00');


답변

기본적으로 뷰 캐시를 지우고 싶습니다.

이제 Laravel 5.1에이를위한 명령이 있습니다.

php artisan view:clear


답변

당신은 FTP를 통해 연결 및 해제 할 수 있습니다 storage\framework\views에 대한 폴더를 laravel 5app\storage\views에 대해 laravel 4.