CoderFunda
  • Home
  • About us
    • Contact Us
    • Disclaimer
    • Privacy Policy
    • About us
  • Home
  • Php
  • HTML
  • CSS
  • JavaScript
    • JavaScript
    • Jquery
    • JqueryUI
    • Stock
  • SQL
  • Vue.Js
  • Python
  • Wordpress
  • C++
    • C++
    • C
  • Laravel
    • Laravel
      • Overview
      • Namespaces
      • Middleware
      • Routing
      • Configuration
      • Application Structure
      • Installation
    • Overview
  • DBMS
    • DBMS
      • PL/SQL
      • SQLite
      • MongoDB
      • Cassandra
      • MySQL
      • Oracle
      • CouchDB
      • Neo4j
      • DB2
      • Quiz
    • Overview
  • Entertainment
    • TV Series Update
    • Movie Review
    • Movie Review
  • More
    • Vue. Js
    • Php Question
    • Php Interview Question
    • Laravel Interview Question
    • SQL Interview Question
    • IAS Interview Question
    • PCS Interview Question
    • Technology
    • Other

23 April, 2021

HTTP Cache Packages for Laravel

 Programing Coderfunda     April 23, 2021     Laravel, Packages     No comments   

HTTP Cache Packages for Laravel


We wrote about Joseph Silber’s Laravel page cache package, which provides static HTTP response caching for Laravel. There are other open-source packages for caching HTTP responses in Laravel so we thought we’d gather a list of HTTP cache packages you should check out. These packages have unique features that make each of them useful with some functionality overlapping between them, so all of these plugins will be useful depending on your needs.

barryvdh/laravel-httpcache

The barryvdh/laravel-httpcache by Barry vd. Heuvel—initially released in 2013 as a package for Laravel 4.1—is an HTTP cache package for Laravel 5.

This packages uses barryvdh/laravel-stack-middleware to use StackPHP middleware with Laravel 5, allowing your Laravel app to utilize HTTPCache.

Using the package, you can set a TTL or MaxSharedAge in a response:

Route::get('my-page', function(){
return Response::make('Hello!')->setTtl(60); // Cache 1 minute
});

You can also use the provided middleware:

protected $routeMiddleware = [
// ...
'ttl' => \Barryvdh\HttpCache\Middleware\SetTtl::class,
];

Route::get('my-page', function(){
return 'Hello'
})->middleware('ttl:60'); // Cache 1 minute

Check out the barryvdh/laravel-httpcache GitHub repo for more information.

spatie/laravel-responsecache

Spatie’s laravel-responsecache package speeds up your Laravel app by caching the entire response. I like how this package leverages the existing cache drivers defined in the config/cache.php file (i.e. redis, file, memcached).

You can define a group of routes to be cached for a given time using a middleware:

Route::group(function() {
Route::get('/another-special-snowflake', 'AnotherSnowflakeController@index');

Route::get('/yet-another-special-snowflake', 'YetAnotherSnowflakeController@index');
})->middleware('cacheResponse:10');

Another nice feature is that you can programmatically clear the entire cache or specific URIs:

ResponseCache::clear();

// Forget several URIs
ResponseCache::forget(['/some-uri', '/other-uri']);

Or via the command:

php artisan responsecache:clear

The package also allows you to provide a custom caching profile which should implement the provided CacheProfile interface. Defining a custom caching profile gives you granular control on which requests get cached, and for how long.

silber/page-cache

The Laravel Page Cache package by Joseph Silber is another HTTP cache package that is an excellent alternative to static site builders. You can gain the benefit of the performance of a static site, without an extra build step, and without sacrificing the ability for a fully dynamic functionality through PHP.

This package works by using a middleware with your routes and generating static HTML files. Used in tandem with a web server like Nginx, your cached responses won’t touch the application server:

for truly static pages on a site there really is no reason to have to boot up a full PHP app just to serve a static page. Serving a simple HTML page from disk is infinitely faster and less taxing on the server.

The solution? Full page caching.

Using the middleware included in this package, you can selectively cache the response to disk for any given request. Subsequent calls to the same page will be served directly as a static HTML page!

Whether you want to cache all of your routes or a select few that never change, this package offers an excellent way to offload requests from your PHP application and let Nginx serve static files for lightning fast responses.

  • Share This:  
  •  Facebook
  •  Twitter
  •  Google+
  •  Stumble
  •  Digg
Email ThisBlogThis!Share to XShare to Facebook

Related Posts:

  • Easy way to serve a realtime loggerHi,I have a set of log files generated on one server (by Python and Supervisor), that I would like to view on another server's web application, where … Read More
  • Sharing Google Maps Data Across Separate Livewire ComponentsCreate a new Livewire component that will handle the Google Maps functionality. Let's call it MapComponent.goCopy codephp artisan make:livewire MapCom… Read More
  • Laravel 10.9 Multiple Image Upload In PHP <form action="uploading.php" method="POST" enctype="multipart/form-data">    <input type="file" name="image_path[]">&… Read More
  • How to implement chat GPT in LaravelInstall the guzzlehttp/guzzle package using Composer:bashCopy codecomposer require guzzlehttp/guzzle Create a new controller that will handle the chat… Read More
  • Laravel Octane  Laravel Octane is a package developed by Laravel that allows you to optimize the performance and scalability of your Laravel applications. It ac… Read More
Newer Post Older Post Home

0 comments:

Post a Comment

Thanks

Meta

Popular Posts

  • Spring boot app (error: method getFirst()) failed to run at local machine, but can run on server
    The Spring boot app can run on the online server. Now, we want to replicate the same app at the local machine but the Spring boot jar file f...
  • Log activity in a Laravel app with Spatie/Laravel-Activitylog
      Requirements This package needs PHP 8.1+ and Laravel 9.0 or higher. The latest version of this package needs PHP 8.2+ and Laravel 8 or hig...
  • Vue3 :style backgroundImage not working with require
    I'm trying to migrate a Vue 2 project to Vue 3. In Vue 2 I used v-bind style as follow: In Vue 3 this doesn't work... I tried a...
  • Laravel auth login with phone or email
          <?php     Laravel auth login with phone or email     <? php     namespace App \ Http \ Controllers \ Auth ;         use ...
  • Enabling authentication in swagger
    I created a asp.net core empty project running on .net6. I am coming across an issue when I am trying to enable authentication in swagger. S...

Categories

  • Ajax (26)
  • Bootstrap (30)
  • DBMS (42)
  • HTML (12)
  • HTML5 (45)
  • JavaScript (10)
  • Jquery (34)
  • Jquery UI (2)
  • JqueryUI (32)
  • Laravel (1017)
  • Laravel Tutorials (23)
  • Laravel-Question (6)
  • Magento (9)
  • Magento 2 (95)
  • MariaDB (1)
  • MySql Tutorial (2)
  • PHP-Interview-Questions (3)
  • Php Question (13)
  • Python (36)
  • RDBMS (13)
  • SQL Tutorial (79)
  • Vue.js Tutorial (68)
  • Wordpress (150)
  • Wordpress Theme (3)
  • codeigniter (108)
  • oops (4)
  • php (853)

Social Media Links

  • Follow on Twitter
  • Like on Facebook
  • Subscribe on Youtube
  • Follow on Instagram

Pages

  • Home
  • Contact Us
  • Privacy Policy
  • About us

Blog Archive

  • September (100)
  • August (50)
  • July (56)
  • June (46)
  • May (59)
  • April (50)
  • March (60)
  • February (42)
  • January (53)
  • December (58)
  • November (61)
  • October (39)
  • September (36)
  • August (36)
  • July (34)
  • June (34)
  • May (36)
  • April (29)
  • March (82)
  • February (1)
  • January (8)
  • December (14)
  • November (41)
  • October (13)
  • September (5)
  • August (48)
  • July (9)
  • June (6)
  • May (119)
  • April (259)
  • March (122)
  • February (368)
  • January (33)
  • October (2)
  • July (11)
  • June (29)
  • May (25)
  • April (168)
  • March (93)
  • February (60)
  • January (28)
  • December (195)
  • November (24)
  • October (40)
  • September (55)
  • August (6)
  • July (48)
  • May (2)
  • January (2)
  • July (6)
  • June (6)
  • February (17)
  • January (69)
  • December (122)
  • November (56)
  • October (92)
  • September (76)
  • August (6)

  • Failed to install 'cordova-plugin-firebase': CordovaError: Uh oh - 9/21/2024
  • pyspark XPath Query Returns Lists Omitting Missing Values Instead of Including None - 9/20/2024
  • SQL REPL from within Python/Sqlalchemy/Psychopg2 - 9/20/2024
  • MySql Explain with Tobias Petry - 9/20/2024
  • How to combine information from different devices into one common abstract virtual disk? [closed] - 9/20/2024

Laravel News

  • Locale-aware Number Parsing in Laravel 12.15 - 5/21/2025
  • Handle Fluent Values as Arrays with Laravel's array() Method - 5/18/2025
  • Chargebee Starter Kit for Billing in Laravel - 5/20/2025
  • Streamline Pipeline Cleanup with Laravel's finally Method - 5/18/2025
  • Validate Controller Requests with the Laravel Data Package - 5/19/2025

Copyright © 2025 CoderFunda | Powered by Blogger
Design by Coderfunda | Blogger Theme by Coderfunda | Distributed By Coderfunda