Laravel 13 + Filament 5 admin panel and REST API for a non-profit developer collective, backed by the Pireon OAuth identity server. The public site is a separate, server-rendered application consuming /api/public/v1. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
30 lines
712 B
PHP
30 lines
712 B
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace App\Models\Concerns;
|
|
|
|
use App\Support\ContentVersion;
|
|
use Illuminate\Database\Eloquent\Model;
|
|
|
|
/**
|
|
* Moves the content version on when something a visitor can see changes.
|
|
*
|
|
* Applied to the models the public API serves, so the frontend's cache can
|
|
* expire the moment the site really changed rather than when a timer says so.
|
|
*/
|
|
trait BumpsContentVersion
|
|
{
|
|
public static function bootBumpsContentVersion(): void
|
|
{
|
|
$bump = function (Model $model): void {
|
|
if (ContentVersion::shouldBumpFor($model)) {
|
|
ContentVersion::bump();
|
|
}
|
|
};
|
|
|
|
static::saved($bump);
|
|
static::deleted($bump);
|
|
}
|
|
}
|