 (41).png)
"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!
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
// 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);
});
}
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ı');
}
// 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,
],
]
// 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);
}
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));
}
composer require sentry/sentry-laravel
// .env SENTRY_LARAVEL_DSN=https://[key]@sentry.io/[project]
public function report(Exception $exception)
{
if ($this->shouldReport($exception)) {
Bugsnag::notifyException($exception);
if ($exception instanceof PaymentException) {
Slack::sendToPaymentAlerts($exception);
}
}
parent::report($exception);
}
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
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 🚀