PHP code example of laragear / cache-refresh

1. Go to this page and download the library: Download laragear/cache-refresh 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/ */

    

laragear / cache-refresh example snippets


use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Collection;
use App\Models\Message;

public function send(Message $message)
{
    Cache::refresh(
        $message->to, 
        fn ($messages) => Collection::wrap($messages)->push($message)
    );
}

use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Collection;
use App\Models\Message;

public function send(Message $message)
{
    // Add the incoming message to a list of messages, refreshing the overall list.
    $messages = Cache::refresh(
        $message->to,
        function (?Collection $messages) use ($message) {
            return Collection::wrap($messages)->push($message);
        },
        60 * 5
    );
    
    return 'Messages has been queued';
}

use Illuminate\Support\Facades\Cache;
use Laragear\CacheRefresh\Expire;
use App\Models\Mission;

Cache::refresh('mission', function ($mission, Expire $expire) {
    $mission ??= new Mission();
    
    if ($mission->ongoing()) {
        // Set a new expiration time.
        $expire->at(today()->endOfDay());
    }
    
    if ($mission->completed()) {
        // Expire the value immediately.
        $expire->now();
    }
    
    if ($mission->isVeryDifficult()) {
        // Put it forever.
        $expire->never();
    }

    return $mission;
}, 60 * 5);

use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Collection;
use App\Models\Message;

Cache::refresh('mission')->lock(60)->waitFor(10)->put(fn ($value) => ..., 60 * 5);
shell
php artisan vendor:publish --provider="Laragear\CacheRefresh\CacheRefreshServiceProvider" --tag="phpstorm"