https://laravel.gen.tr/d/4467-event-listeners-vs-observer
Bu konu altına devam edecektim ama kilitlenmiş konu.
Observer da Cache create veya get etmeye çalıştığımda
Serialization of 'CurlHandle' is not allowed
şu şekilde bir hata alıyorum. Dahilde ederken EventServiceProvider
'ı kullanıyorum.
public function boot()
{
User::observe(UserObserver::class);
}
Yapmak istediğim ise her model çağrıldığında datayı cacheden okutmak.Kodlarıma gelecek olursak
class UserObserver
{
/**
* Handle the User "retrieved" event.
*
* @param \App\Models\User $user
* @return void
*/
public function retrieved(User $user) {
Cache::get("user-{$user->id}");
}
/**
* Handle the User "created" event.
*
* @param \App\Models\User $user
* @return void
*/
public function created(User $user)
{
Cache::put("user-{$user->id}", $user, 60);
}
/**
* Handle the User "updated" event.
*
* @param \App\Models\User $user
* @return void
*/
public function updated(User $user)
{
if ($user->wasChanged()) {
// Do something...
}
}
/**
* Handle the User "deleted" event.
*
* @param \App\Models\User $user
* @return void
*/
public function deleted(User $user)
{
$user->update([
'email' => time() . '::' . $user->email
]);
Cache::forget("user-{$user->id}");
}
/**
* Handle the User "restored" event.
*
* @param \App\Models\User $user
* @return void
*/
public function restored(User $user)
{
//
}
/**
* Handle the User "force deleted" event.
*
* @param \App\Models\User $user
* @return void
*/
public function forceDeleted(User $user)
{
//
}
}
bu şekilde. Nerede hata yapıyorum. Bu arada Cache:forever ve diğerlerini de denedim. Laravel son sürümü kullanıyorum.
"laravel/framework": "^8.77.1",