"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 🚀