PHP 예외 처리는 미들웨어 예외 처리 미들웨어를 사용하므로 각 컨트롤러에서 명시적으로 처리할 필요 없이 애플리케이션의 모든 계층에서 예외를 처리할 수 있습니다. 단계는 다음과 같습니다. Symfony/error-handler 라이브러리를 설치합니다. 미들웨어 인터페이스를 구현하는 미들웨어 클래스를 만듭니다. 애플리케이션에 미들웨어를 등록합니다.
소개
예외는 코딩할 때 직면해야 하는 현실입니다. PHP에서는 try-catch
语句或 set_exception_handler
를 사용하여 예외를 처리할 수 있습니다. 그러나 비즈니스 규모가 커지면 이 두 가지 방법은 번거롭고 유지 관리가 어려워집니다. 미들웨어 예외 처리 미들웨어는 PHP 애플리케이션에서 예외를 처리하는 우아하고 확장 가능한 방법을 제공합니다.
미들웨어란 무엇인가요?
미들웨어는 요청과 응답 사이에서 실행되는 코드 조각입니다. 요청 처리 전후에 작업을 수행하는 역할을 담당합니다. 예외 처리 미들웨어를 사용하면 모든 컨트롤러나 메서드에서 명시적으로 처리할 필요 없이 애플리케이션의 모든 계층에서 예외를 처리할 수 있습니다.
미들웨어 예외 처리 사용
1단계:
composer require symfony/error-handler
설치 2단계: 미들웨어 생성
use Symfony\Component\ErrorHandler\Middleware\ErrorMiddleware; class ExceptionMiddleware { public function __invoke(Request $request, RequestHandler $handler) { try { return $handler->handle($request); } catch (\Exception $e) { // 处理异常 return new Response($e->getMessage(), 500); } } }
3단계: 미들웨어 등록
//Slim 4 $app->add(new ExceptionMiddleware()); // Laravel 8+ Route::middleware(['exception_middleware'])->group(function () { // ... });
실습 사례
생각해보자 간단한 CRUD 애플리케이션. 새 레코드를 생성할 때 입력한 날짜가 유효하지 않으면 오류 메시지를 반환해야 합니다.
// Controller // .... try { $entity->setDate($request->get('date')); } catch (InvalidDateFormatException $e) { return new Response($e->getMessage(), 400); }
예외 처리 미들웨어를 사용하면 컨트롤러에서 예외 처리를 분리할 수 있습니다.
// Middleware class ExceptionMiddleware { public function __invoke(Request $request, RequestHandler $handler) { try { return $handler->handle($request); } catch (InvalidDateFormatException $e) { // 处理异常 return new Response( json_encode(['error' => $e->getMessage()]), 400, ['Content-Type' => 'application/json'] ); } } }
위 내용은 PHP 예외 처리: 미들웨어 예외 처리 미들웨어 사용의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!