Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 20.05.2015 14:41:38

kilowat

Кэширование в laravel

Всем привет.Я новичок в веб разработке возникли вопросы по кэшированию.
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;
    }
});

#2 24.05.2015 07:43:11

Re: Кэширование в laravel

Зачем вообще кэшировать вручную? В Laravel уже реализовано кэширование шаблонов автоматом.
А вот запросы к БД нужно кэшировать так:

Model::where(...)->remember(60)->get()

Т.е. добавляем "remember".

Не в сети

#3 25.05.2015 17:06:57

Re: Кэширование в laravel

если мне память не изменяет то в laravel 5 - remember() из eloquent model выпилили теперь кеширование через Cache::remember(); делается


в разработке

Не в сети

#4 25.05.2015 19:17:34

Re: Кэширование в laravel

Незачем кэшировать вьюху.

PHP
$items = \Cache::remember('items.'.\Input::get('page'1), 10, function () {
            return 
Item::paginate(25);
        });

Изменено PROGRAMMATOR (25.05.2015 19:17:45)

Не в сети

#5 26.05.2015 10:25:24

kilowat

Re: Кэширование в laravel

Дмитрий пишет:

Зачем вообще кэшировать вручную? В Laravel уже реализовано кэширование шаблонов автоматом.
А вот запросы к БД нужно кэшировать так:

Model::where(...)->remember(60)->get()

Т.е. добавляем "remember".

Если вьюхи кэшируются автоматом, то где можно посмотреть файлы кэша? Я вот просто поставил debug panel для laravel, если кэшировать вьхи то в debug панель говорит что не происходит их вызов (там есть такая вклада) в следствии чего чуть меньше памяти сервера требуется и запрос чуть быстрее обрабатывается. Я так понимаю если требуется доп оптимизация то можно и вьхи покэшировать....

#6 26.05.2015 12:16:37

Re: Кэширование в laravel

Если вьюхи кэшируются автоматом, то где можно посмотреть файлы кэша?

В папке storage/framework/views

Не в сети

#7 26.05.2015 14:09:59

Re: Кэширование в laravel

Дмитрий, Вы как-то тему обрубили... Так не честно, я только попкорн купил )))))

Не в сети

#8 26.05.2015 15:05:27

kilowat

Re: Кэширование в laravel

В папке storage/framework/views

Посмотрел фалы, только по мойму они не очень на кэш похожи, там просто по сути теже вьюшки только вместо блайд разметки php тэги smile. Вроде как в кэше должна быть чисто разметка или сириализованные данные. Вообщем все равно спасибо за советы...

#9 26.05.2015 15:26:04

Re: Кэширование в laravel

На самом деле это компилированные вьюшки, и работают они по принципу кеширования -- живут какое-то время, не перекомпилируясь.
Эти вьюшки запрашиваются первым проходом, не обращая внимание на ресурсные вьюшки-исходники.
Что можно назвать кешированием первого уровня. Компиляция как бы кушает процессорное время, а работа с компилированными вьюшками так же как бы быстрее.
Почему "как бы" ? - потому что в любом случае кеширование на уровне движка удовольствие сомнительное.
Следовательно, предполагаю, что тебя интересует Кеширование второго уровня, - готового html-кода.
Угадал?

Если ты хочешь действительно кешировать html - делай это на урове веб-сервера, и не забудь разделить статический контент (css/картинки.js) от динамически-генерируемого.
Тут в помощь связка nginx-proxy + apache2

Изменено hzone (26.05.2015 15:30:43)

Не в сети

Подвал раздела