samedi 18 janvier 2020

Laravel cache with route model binding?

I'm adding caching to my Laravel app routes. I have a function that renders a blog post on my site:

    public function show(Post $post)
    {
        SEO::setTitle($post->title);
        SEO::setDescription($post->subtitle);
        SEO::setCanonical('https://employbl.com/blog/' . $post->slug);
        SEO::opengraph()->setUrl('https://employbl.com/blog/' . $post->slug);
        SEO::opengraph()->addProperty('type', 'article');
        SEO::opengraph()->addImage($post->featured_image);
        SEO::twitter()->setSite('@Employbl_Jobs');

        $markdown = Markdown::parse($post->body);

        return view('blog.post', compact('post', 'markdown'));
    }

This is the route that calls the method: Route::get('/blog/{post}', 'PostController@show')->name('posts.show'); so that my blog renders a URL with a slug like: https://employbl.com/blog/laravel-vue-tailwindcss-single-page-application-spa

What is the best way to implement caching on this route so the page loads faster for users?

Would it be something like:

$post = Cache::rememberForever('blog-post' . $post->id, function(){
     return $post;
});

Or is caching even necessary with route model binding? Does the cache key need to be unique or can I just use "blog-post" as cache key? Would it be better to cache the $markdown variable instead of the $post variable? Both?



from Newest questions tagged laravel-5 - Stack Overflow https://ift.tt/30wBYlf
via IFTTT

Aucun commentaire:

Enregistrer un commentaire