Files
Gnuboard7/app/Exceptions/TemplateOperationException.php
2026-05-11 11:29:41 +09:00

30 lines
1.0 KiB
PHP

<?php
namespace App\Exceptions;
use RuntimeException;
use Throwable;
/**
* 템플릿 설치/업데이트 흐름에서 발생하는 운영 오류 예외.
*
* 다국어 키 + 파라미터를 보존하여 컨트롤러/리스너가 원본 키를 활용 가능합니다.
* `TemplateNotFoundException` / `TemplateFileCopyException` 등 의미가 분리된 예외는
* 별도 클래스로 유지하고, 본 클래스는 일반 운영 흐름의 단일 메시지 throw 캡슐화에 사용합니다.
*/
class TemplateOperationException extends RuntimeException
{
/**
* @param string $errorKey 다국어 키 (예: 'templates.errors.install_failed')
* @param array<string, mixed> $params 메시지 파라미터
* @param Throwable|null $previous 원인 예외
*/
public function __construct(
public readonly string $errorKey,
public readonly array $params = [],
?Throwable $previous = null,
) {
parent::__construct(__($errorKey, $params), 0, $previous);
}
}