일반 화면(React)과 봇 화면(PHP)은 같은 레이아웃을 각각 렌더하는데 봇 화면 쪽 지원 범위가 뒤처져, 확장이 교체한 본문이 통째로 빈 채 나갔다 (공개 이슈 ). 같은 결손 계열을 전수 조사해 함께 닫는다. - 확장 주입 props 를 렌더 진입 시점에 해석해 자손 전체에 상속 → 게시글·답글 원글·댓글·페이지·상품 설명 5개 지점 복구 - 사용자 작성 HTML 정화기 신설 — isHtml 판정에 따라 이스케이프/정화. 미정화 상태에서 봇 경로로 저장형 스크립트가 실제 실행됐다 - 노드 키 패리티: conditions / type:iterator / responsive 매칭 규칙 / children 문자열 / text 우선순위 / $t:defer / 레이아웃 초기 상태 - 표현식: 단일 바인딩 판정 교체, ||·&& 를 값 반환(JS 시맨틱)으로, 비교식이 raw 경로에서 null 이 되던 문제 - 데이터소스: 엔드포인트 표현식 전면 해석 + 레이아웃 8곳 선언 보강 - 봇 페이지 캐시 1회 전량 무효화 업그레이드 스텝 지원 범위 SSoT 표를 문서에 고정하고, 한쪽만 고치는 것을 막는 검사 룰과 레이아웃 전수 순회 테스트로 잠갔다.
34 lines
1.4 KiB
PHP
34 lines
1.4 KiB
PHP
<?php
|
|
|
|
namespace App\Upgrades;
|
|
|
|
use App\Extension\AbstractUpgradeStep;
|
|
|
|
/**
|
|
* 코어 7.0.6 업그레이드 스텝
|
|
*
|
|
* 모든 비즈니스 로직은 본 클래스 파일이 아닌 `upgrades/data/7.0.6/` 안에 격리된다:
|
|
*
|
|
* - migrations/
|
|
* 01_NullifyUntouchedSeoCacheOverrides.php
|
|
* SEO 캐시 설정을 "미설정(null) = 고급 탭 값 사용" 의미로 이행 (결정 D19).
|
|
* 옛 기본값 그대로인 키는 null 로 비우고, 다른 값이면 오버라이드로 보존한다.
|
|
* 02_ClearSeoPageCacheAfterRendererParityFix.php
|
|
* 봇용 페이지 캐시를 1회 전량 무효화한다. 7.0.6 이전 렌더러가 빈 본문으로
|
|
* 저장한 결과물이 캐시 수명 동안 계속 서빙되는 것을 막는다.
|
|
*
|
|
* 본 클래스는 `AbstractUpgradeStep` 의 default `run()` 에 위임 — 별도 override 없음.
|
|
*
|
|
* @upgrade-path 7.0.x → 7.0.6
|
|
*
|
|
* 의존성 제약: 본 스텝은 변환/핫픽스를 `data/7.0.6/migrations/` 의 버전 namespace
|
|
* 클래스에 위임한다. 미래 버전에서 *그 디렉토리는 동결* (수정 금지) 되어 "각 스텝별 동작
|
|
* 100% 동일 보장" invariant 가 성립.
|
|
*
|
|
* 상세: docs/extension/upgrade-step-guide.md §13 "버전별 데이터 스냅샷"
|
|
*/
|
|
class Upgrade_7_0_6 extends AbstractUpgradeStep
|
|
{
|
|
// 모든 로직 위임 — data/7.0.6/ 가 SSoT.
|
|
}
|