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);