Files
Gnuboard7/modules/_bundled/sirsoft-ecommerce/src/Exceptions/ReviewNotWritableException.php
T
HeuJung b3d0da9355 fix(release): 7.0.7 릴리즈 검증 발견 결함 전수 처리 및 출시일 8/18 정렬
7.0.7 페이로드 전수 검증에서 발견된 error 4건·warn 14건을 릴리즈 전에
처리했다. 미출시 분량의 자체 결함(회원 통합검색 500, 관리자 스코프 403 의
500 위장 등)이므로 페이로드에 합류시키고, 출시 대상 26개 CHANGELOG 의
버전 섹션 날짜를 2026-08-18 로 정렬했다.

- 통합검색 import 복원 + 이커머스 관리자 typed 403 catch 대칭(테스트 동반)
- admin 판정 스니핑 사설 사본 전수 수렴(BoardResource) + 조건 스캔 테스트
- 스케줄 인터프리터 변형 표기(확장자·버전 접미사) 정규화 차단
- ckeditor5 참조 판정 배치화·fail-safe, 결제 플러그인 진단 페이로드 대칭
- 템플릿 다크 대비·상태 Select value-제어 + --production 재빌드
- Upgrade_7_0_7 잔존 중복 색인 정리 스텝, API 문서·i18n(ko/en/ja) 동기
2026-08-18 08:12:55 +09:00

53 lines
1.6 KiB
PHP

<?php
namespace Modules\Sirsoft\Ecommerce\Exceptions;
use RuntimeException;
/**
* 리뷰 작성 불가 예외
*
* 리뷰 작성 자격 검증(canWrite)에 실패한 상태에서 리뷰 생성을 시도할 때 발생합니다.
* 컨트롤러의 기존 catch (\RuntimeException) 흐름을 유지하기 위해 RuntimeException 을 상속합니다.
*/
class ReviewNotWritableException extends RuntimeException
{
/**
* @param string $reason 작성 불가 사유 식별자 (예: already_written, deadline_passed)
*/
public function __construct(
private string $reason
) {
parent::__construct(
__('sirsoft-ecommerce::messages.reviews.cannot_write', ['reason' => $reason])
);
}
/**
* 작성 불가 사유 식별자 반환
*
* @return string 사유 식별자
*/
public function getReason(): string
{
return $this->reason;
}
/**
* 작성 불가 사유의 번역 라벨을 반환합니다.
*
* 사유 식별자를 그대로 :reason 치환자에 실으면 최종 사용자 화면에 원시
* 식별자(already_written 등)가 노출된다. 라벨 키가 없는 미지의 사유는
* 식별자를 그대로 반환한다 (라벨 미정의가 표시 자체를 깨면 안 된다).
*
* @return string 번역된 사유 라벨
*/
public function getReasonLabel(): string
{
$key = 'sirsoft-ecommerce::messages.reviews.reasons.'.$this->reason;
$label = __($key);
return $label === $key ? $this->reason : $label;
}
}