KategorilerLaravelPHP

Laravel Eloquent Attribute Casting: Hashed

Başlığı yazmakta biraz zorlanmış olabilirim. Bahsetmek istediğim Laravel’e yeni eklenen cast özelliği. Bildiğiniz üzere kritik verilerin şifrelenerek kaydedilmesi oldukça önemlidir. Örneğin kullanıcı şifreleri hashlenerek kaydedilir.

Önceden şifreleri model’e hash’i manuel olarak ayarlayıp gönderiyorduk.

use App\Models\User;
use Illuminate\Support\Facades\Hash;

$user = User::create([
    'name' => 'Ömer',
    'email' => '[email protected]',
    'password' => Hash::make('topsecretpassword'),
]);
Code language: PHP (php)

Yukarıdaki kodu çalıştırdığımızda password alanında aşağıdaki gibi bir kayıt görünecek.

$2y$10$2lWxN24lAIKC5jhSabWAQeCD6JQWO/FWbuSGxdM06VxvxxYzTsYfy

Yeni geliştirmeyle birlikte artık model değerlerini önceden manuel olarak hash yapmadan gönderdiğimizde otomatik olarak hash işlemi yapılacak. Bunun için ilgili model sınıfında şu değişikliği yapmamız gerekiyor.

class User extends Authenticatable
{
    // ...

    protected $casts = [
        'password'=> 'hashed',
    ];
}
Code language: PHP (php)

Artık yeni bir kullanıcı oluşturduğumuzda veya password alanını güncellediğimizde manuel hash yapmadan doğrudan değeri gönderebiliriz.

use App\Models\User;

$user = User::create([
    'name' => 'Eymen',
    'email' => '[email protected]',
    'password' => 'topsecretpassword',
]);
Code language: PHP (php)

Bu yenilik kodun daha sade olmasını sağlamış. Kullanılmasının eğer takım tarafından isteniyorsa; güzel olabileceğini düşünüyorum. Hashed attribute cast’i için ve daha fazlası için resmi dökümanı inceleyebilirsiniz.

Bu özellik Laravel’in 10.10.0 versiyonu ile birlikte geldi. (v10.10.0)

Sonraki yazıda görüşürüz.

Kapak görseli: Mohammed Rahmani

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir