rhumsaa/uuid
Deprecated PHP 5.3+ library for generating and working with RFC 4122 UUIDs (v1, v3, v4, v5). No longer maintained—use ramsey/uuid instead.
ramsey/uuid), Laravel’s Eloquent can leverage UUIDs via custom accessors/mutators or packages like webpatser/laravel-uuid./users/{uuid}) and immutable references in event-driven architectures.UUID type and MySQL’s CHAR(36) (or binary storage via ramsey/uuid).moontoast/math dependency for large integers). Mitigation: Ensure 64-bit PHP in production.composer require ramsey/uuid).Rhumsaa\Uuid\Uuid (or Ramsey\Uuid\Uuid) as a singleton for global UUID generation.use Ramsey\Uuid\Uuid;
use Ramsey\Uuid\Doctrine\UuidType;
class User extends Model {
protected $keyType = 'string';
public $incrementing = false;
protected $casts = ['id' => UuidType::class];
}
Uuid::uuid4()->toString()).rhumsaa/uuid with ramsey/uuid (identical API).UUID types (PostgreSQL) or CHAR(36) (MySQL).protected $primaryKey = 'id'; → custom UUID handling).rhumsaa/uuid is no longer maintained. Action: Migrate to ramsey/uuid immediately (drop-in replacement).getMostSignificantBits()) require moontoast/math. Mitigation: Enforce 64-bit PHP in CI/CD and production.webpatser/laravel-uuid or custom logic.openssl_random_pseudo_bytes() (secure but slightly slower than mt_rand).CHAR(36)) or binary (PostgreSQL UUID)?ramsey/ulid if time-ordering is critical.Uuid::isValid())?ramsey/uuid integrates natively with Laravel’s dependency management.Ramsey\Uuid\UuidFactory as a singleton:
$this->app->singleton(Ramsey\Uuid\UuidFactory::class, function () {
return new Ramsey\Uuid\UuidFactory();
});
use Ramsey\Uuid\Uuid;
use Ramsey\Uuid\Doctrine\UuidType;
class User extends Model {
protected $keyType = 'string';
public $incrementing = false;
protected $casts = ['id' => UuidType::class];
protected static function boot() {
parent::boot();
static::creating(function ($model) {
$model->{$model->getKeyName()} = Uuid::uuid4()->toString();
});
}
}
return response()->json(['id' => $user->id]); // "550e8400-e29b-41d4-a716-446655440000"
UUID type (native support).CHAR(36) or BINARY(16) (for binary storage).CHAR(36) (no native UUID type).rhumsaa/uuid with ramsey/uuid:
composer require ramsey/uuid
composer remove rhumsaa/uuid
ALTER TABLE users ADD COLUMN id CHAR(36) PRIMARY KEY).getIncrementing() and getKeyType():
public function getIncrementing() { return false; }
public function getKeyType() { return 'string'; }
casts for automatic UUID conversion:
protected $casts = ['id' => UuidType::class];
DB::table('users')->update(['id' => Uuid::uuid4()->toString()]);
FormRequest validation):
public function rules() {
return ['uuid' => 'required|uuid'];
}
UUID type support.How can I help you explore Laravel packages today?