Страницы

Поиск по вопросам

вторник, 16 октября 2018 г.

Blade Cache in Laravel 5+

При обновлении шаблонов Blade приходится долго ждать изменений по причине кеширования. Отключать кеширование в php.ini не вариант. Нашел на просторах решение с прописанем middleware:
namespace App\Http\Middleware;
use Closure; use Illuminate\Contracts\Routing\Middleware;
class ClearCache implements Middleware {
/** * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { $cachedViewsDirectory = app('path.storage').'/framework/views/'; if ($handle = opendir($cachedViewsDirectory)) { while (false !== ($entry = readdir($handle))) { if(strstr($entry, '.')) continue; @unlink($cachedViewsDirectory . $entry); } closedir($handle); } return $next($request); } }
но при загрузке страницы blade говорит что не нашел последний кеш файл и попросту выбивает ошибку. Есть ли вариант уменьшить время или убрать вовсе.


Ответ

Для Laravel 5.0 нужно установить http://packalyst.com/packages/package/kyslik/view-clear В Laravel 5.1+ уже идёт в комплекте.
namespace App\Http\Middleware;
use Closure; use Illuminate\Contracts\Routing\Middleware; use Illuminate\Support\Facades\Artisan;
class ClearCache implements Middleware {
/** * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { Artisan::call('view:clear'); return $next($request); } }

Комментариев нет:

Отправить комментарий