При обновлении шаблонов 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);
}
}
Комментариев нет:
Отправить комментарий