Страницы

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

воскресенье, 8 декабря 2019 г.

Blade Cache in Laravel 5+

#php #laravel #кэширование


При обновлении шаблонов 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 говорит что не нашел последний кеш файл и попросту
выбивает ошибку. Есть ли вариант уменьшить время или убрать вовсе.
    


Ответы

Ответ 1



Для 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); } }

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

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