Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Всем привет.Я новичок в веб разработке возникли вопросы по кэшированию.
1) Как правильно кэшировать вьшки и слои в шаблонизаторе blade. Например у меня есть master.layout.php там шапка и футер. Ведь он выводиться чисто вызовом функции extends как и где его загонять в кэш. Вьшки я так понимаю нужно загонять в cache используя view->render(), и потом от туда забирать если они там есть. И есть ли вообще смысл кэшировать вьшки придаст это производительности, или достаточно кэшировать запросы.
2)Запросы к бд стоит кэшировать отдельно? или можно вместе с вьхай например так?
Route::get('/', function()
{
if( Cache::has( 'article' ) ) {
return Cache::get( 'article' );
} else {
$article = Article::all();
$rend = view('article.index',compact('article'))->render();
Cache::put('article',$rend,1000);
return $rend;
}
});
Зачем вообще кэшировать вручную? В Laravel уже реализовано кэширование шаблонов автоматом.
А вот запросы к БД нужно кэшировать так:
Model::where(...)->remember(60)->get()
Т.е. добавляем "remember".
Не в сети
если мне память не изменяет то в laravel 5 - remember() из eloquent model выпилили теперь кеширование через Cache::remember(); делается
в разработке
Не в сети
Не в сети
Зачем вообще кэшировать вручную? В Laravel уже реализовано кэширование шаблонов автоматом.
А вот запросы к БД нужно кэшировать так:Model::where(...)->remember(60)->get()
Т.е. добавляем "remember".
Если вьюхи кэшируются автоматом, то где можно посмотреть файлы кэша? Я вот просто поставил debug panel для laravel, если кэшировать вьхи то в debug панель говорит что не происходит их вызов (там есть такая вклада) в следствии чего чуть меньше памяти сервера требуется и запрос чуть быстрее обрабатывается. Я так понимаю если требуется доп оптимизация то можно и вьхи покэшировать....
Если вьюхи кэшируются автоматом, то где можно посмотреть файлы кэша?
В папке storage/framework/views
Не в сети
Дмитрий, Вы как-то тему обрубили... Так не честно, я только попкорн купил )))))
Не в сети
В папке storage/framework/views
Посмотрел фалы, только по мойму они не очень на кэш похожи, там просто по сути теже вьюшки только вместо блайд разметки php тэги . Вроде как в кэше должна быть чисто разметка или сириализованные данные. Вообщем все равно спасибо за советы...
На самом деле это компилированные вьюшки, и работают они по принципу кеширования -- живут какое-то время, не перекомпилируясь.
Эти вьюшки запрашиваются первым проходом, не обращая внимание на ресурсные вьюшки-исходники.
Что можно назвать кешированием первого уровня. Компиляция как бы кушает процессорное время, а работа с компилированными вьюшками так же как бы быстрее.
Почему "как бы" ? - потому что в любом случае кеширование на уровне движка удовольствие сомнительное.
Следовательно, предполагаю, что тебя интересует Кеширование второго уровня, - готового html-кода.
Угадал?
Если ты хочешь действительно кешировать html - делай это на урове веб-сервера, и не забудь разделить статический контент (css/картинки.js) от динамически-генерируемого.
Тут в помощь связка nginx-proxy + apache2
Изменено hzone (26.05.2015 15:30:43)
Не в сети
Страницы 1