"Kullanıcılarınız 404 hatasıyla karşılaştığında ne görüyor?" Laravel'de profesyonel hata yönetimi ile kullanıcı deneyimini nasıl dönüştüreceğinizi öğrenin!
Neden Özel Hata Yönetimi? 🤔
- Kullanıcıları kaybetmeyin! 57% kullanıcı hata sayfasında 3 saniyeden fazla kalmaz
- SEO kayıplarını önleyin - Google 5xx hatalarını sevmez
- Gizli veri sızıntılarını engelleyin 🔒
- Hataları daha hızlı tespit edin 🔍
1. Özel Hata Sayfaları 🎨
Blade Template ile Özelleştirme
php artisan make:view errors/404 php artisan make:view errors/500
404.blade.php Örneği:
@extends('layouts.app')
@section('content')
<div class="error-page">
<h1>Oops! Sayfa Bulunamadı</h1>
<p>Üzgünüz, aradığınız sayfa artık burada değil.</p>
<a href="/" class="btn">Anasayfaya Dön</a>
<img src="{{ asset('images/404-illustration.svg') }}" alt="404 Error">
</div>
@endsection
HTTP Hata Kodlarına Göre Özelleştirme
// app/Exceptions/Handler.php
public function register()
{
$this->renderable(function (NotFoundHttpException $e) {
return response()->view('errors.404', [], 404);
});
$this->renderable(function (AuthenticationException $e) {
return response()->view('errors.403', [], 403);
});
}
2. Akıllı Loglama Sistemi 📝
Context Ekleyerek Loglama
try {
// Riskli kod
} catch (Exception $e) {
Log::error('Ödeme işlemi başarısız', [
'user' => auth()->id(),
'amount' => $request->amount,
'error' => $e->getMessage(),
'trace' => $e->getTraceAsString()
]);
throw new PaymentFailedException('Ödeme alınamadı');
}
Log Kanalları ile Yönetim
// config/logging.php
'channels' => [
'critical' => [
'driver' => 'stack',
'channels' => ['slack', 'papertrail'],
'level' => 'critical',
],
'payment_errors' => [
'driver' => 'daily',
'path' => storage_path('logs/payments.log'),
'level' => 'error',
'days' => 14,
],
]
3. Kullanıcı Dostu Hata Mesajları 💬
JSON API Hataları
// Handler.php
if ($request->wantsJson()) {
return response()->json([
'error' => 'Not Found',
'message' => 'The requested resource was not found',
'documentation' => 'https://api.example.com/docs/errors/404',
'code' => 404
], 404);
}
Form Validasyon Hataları
php
Copy
// FormRequest'te
public function failedValidation(Validator $validator)
{
throw new HttpResponseException(response()->json([
'errors' => $validator->errors(),
'suggestion' => 'Lütfen tüm zorunlu alanları doldurun'
], 422));
}
4. Hata Takip Sistemleri 🔍
Sentry Entegrasyonu
composer require sentry/sentry-laravel
// .env SENTRY_LARAVEL_DSN=https://[key]@sentry.io/[project]
Özel Hata Raporlama
public function report(Exception $exception)
{
if ($this->shouldReport($exception)) {
Bugsnag::notifyException($exception);
if ($exception instanceof PaymentException) {
Slack::sendToPaymentAlerts($exception);
}
}
parent::report($exception);
}
5. Hata Sayfaları için SEO Optimizasyonu 🔎
404 Sayfası Meta Ayarları:
@section('meta')
<meta name="robots" content="noindex">
<title>404 Sayfa Bulunamadı | {{ config('app.name') }}</title>
<meta name="description" content="Aradığınız sayfa taşınmış veya silinmiş olabilir">
@endsection
Sonuç: Kusursuz Hata Yönetimi 🏆
- %40 daha az kullanıcı kaybı 📉
- %30 daha hızlı hata çözümü ⚡
- Daha güvenli uygulama 🛡️
Hata yönetimi için hangi araçları kullanıyorsunuz? Yorumlarda paylaşın! 💬
Bir sonraki yazımız: 🚀 [Laravel'de Dependency Injection ve Service Container] - Laravel'in kalbine yolculuk!
#Laravel #ErrorHandling #UX #Logging #WebDevelopment 🚀
+(41).png&w=320&q=50)


