1. Go to this page and download the library: Download laragear/cache-query library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
use Illuminate\Support\Facades\DB;
use App\Models\Article;
DB::table('articles')->latest('published_at')->take(10)->cache()->get();
Article::latest('published_at')->take(10)->cache()->get();
use App\Models\User;
$usersWithPosts = User::where('is_author')->with('posts')->cache()->paginate();
use Illuminate\Support\Facades\DB;
use App\Models\Article;
DB::table('articles')->latest('published_at')->take(10)->cache(120)->get();
Article::latest('published_at')->take(10)->cache(now()->addHour())->get();
use App\Models\Article;
Article::latest('published_at')->take(10)->cache('forever')->get();
use App\Models\Article;
Article::latest('published_at')->take(200)->cache([300, 60])->get();
use Laragear\CacheQuery\Cache;
use App\Models\User;
User::query()->where('cool', true)->cache(function (Cache $cache) {
$cache->ttl([300, 60])->regenWhen(true);
})->get();
use Laragear\CacheQuery\Cache;
use App\Models\User;
use App\Models\Post;
$cacheUser = Cache::for(30)->regenWhen(true);
User::query()->where('cool', true)->cache($cacheUser)->get();
$cachePost = Cache::flexible(300, 50)->as('frontend-posts');
Post::query()->latest()->limit(10)->cache($cachePost)->get();
use Laragear\CacheQuery\Cache;
Cache::for([300, 50])->regenWhen(true);
Cache::for(50)->regenUnless(fn() => false);
use Laragear\CacheQuery\Cache;
Cache::for(300)->exceptEmpty();
use Laragear\CacheQuery\Cache;
Cache::for(300)->exceptNested();
use App\Models\User;
use App\Models\Post;
use Laragear\CacheQuery\Cache;
User::where('cool', true)
->cache(fn(Cache $cache) => $cache->exceptNested())
->with('posts', fn ($query) => $query->where('published_at', '<', now())
->get();
use Laragear\CacheQuery\Cache;
Cache::for(300)->store('redis');
use Laragear\CacheQuery\Cache;
Cache::for(300)->as('latest_articles');
use Laragear\CacheQuery\Facades\CacheQuery;
CacheQuery::forget('latest_articles');
use App\Models\Article;
use App\Models\Post;
use Laragear\CacheQuery\Facades\CacheQuery;
use Laragear\CacheQuery\Cache;
$cache = Cache::for(300)->as('latest_articles');
Article::latest('published_at')->with('drafts')->take(5)->cache($cache)->get();
Post::latest('posted_at')->take(10)->cache($cache)->get();
CacheQuery::forget('latest_articles');
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use Laragear\CacheQuery\Proxy;
class AppServiceProvider extends ServiceProvider
{
public function register()
{
Proxy::$queryHasher = function ($connection, $query, $bindings) {
// ...
}
}
}