DSc T2Editor Developers
DocumentationT2Editor v10.5.xFoundations
Foundations

코어 디렉토리: config, extend, js, data

코어의 네 영역이 맡는 책임과 변경·백업 경계를 정리합니다.

코어 디렉토리

/config

  • extend.php: ABI 2 런타임 포인터, 엔드포인트 포워딩, 확장·플러그인·locale 루트와 캐시를 관리한다.
  • t2_config.php: 설치 경로와 URL, 공개 데이터·DB·비공개 루트, 허용 URL과 iframe 도메인을 정의한다.
  • t2_cms.php, t2_cms_auth.php, t2_cms_data.php: CMS adapter 탐색, 관리자 인증과 환경별 데이터 경로를 공통 facade로 제공한다.
  • t2_utf8.php, t2_compat.php: mbstring·선택 확장이 없는 PHP 환경의 대체 경로를 제공한다.
  • upload_config.php: 업로드 크기, MIME·파일 시그니처, 이미지 픽셀 수, Origin과 호스트 어댑터를 검증한다.
  • t2_storage.php: 데이터 구조를 준비·이전하고 공개 영역의 실행 파일을 제거하거나 접근을 차단한다.
  • t2_private_store.php: 404 래퍼가 붙은 PHP 상태 파일을 원자적으로 읽고 쓴다.
  • t2_i18n_loader.php: 코어·Extend·플러그인 번역을 namespace 단위로 합치고 동적 또는 세대별 캐시로 제공한다.

그누보드5 분기는 실제 T2Editor 경로가 G5_PLUGIN_PATH 아래인지 realpath()로 확인된 경우에만 사용한다. 라이믹스와 독립 환경은 BASIC 경로 계산을 사용하지만 라이믹스의 렌더링·업로드는 별도 어댑터가 처리한다.

/extend

  • /extend/php: 서버 전역 정책과 호스트 브릿지. 파일 머리의 @t2-scope로 요청 범위를 제한할 수 있다.
  • /extend/js, /extend/css: 모든 에디터 인스턴스에 추가할 전역 자산.
  • /extend/locales: 코어 문자열을 보완하는 전역 번역 overlay.

동일 이름의 확장은 base(10), 선택 runtime(20), data 설치(30), 허용된 override(40) 우선순위로 선택된다. 첫 실행 보안 게이트처럼 base에 고정된 파일은 제3자 override가 대체하지 못한다.

/integration/cms

  • registry.php: PHP adapter와 capability 등록·선택.
  • browser.js: 브라우저의 T2EditorHostAdapters registry.
  • adapters/: 그누보드5·라이믹스·독립·선택적 WordPress 감지와 인증·데이터·업로드 구현.
  • legacy-php-api.php, legacy-browser-api.js: 10.4.0 공개 함수와 기존 플러그인을 위한 호환 facade.

한 adapter의 예외는 다른 CMS 판정이나 에디터 초기화로 전파하지 않는다. 신규 코드는 CMS 전역을 직접 참조하지 않고 capability를 요청한다.

/js

  • core.js: T2Editor 인스턴스, 명령, 저장·복원 훅과 플러그인 로딩.
  • document-model.js: 문서 상태와 블록 모델.
  • format-engine.js: 인라인·블록 포맷 처리.
  • hooks.js: submit, restore 같은 생명주기 훅 레지스트리.
  • toolbar.js: button.json을 바탕으로 UI를 구성한다.
  • utils.js: URL 정제와 appendHostUploadFields(), getHostUploadUrl(), normalizeHostUploadResponse(), applyHostUploadResult() 같은 CMS 중립 업로드 facade.
  • rhymix.js: 기존 라이믹스 스킨의 실제 폼, 다중 인스턴스, 임시저장과 첨부 UI를 adapter 경계에 연결하는 호환 브릿지.

button.json은 버튼 선언이며 플러그인 활성 등록을 대신하지 않는다.

/data

독립 환경의 기본 공개 루트는 <T2Editor>/data, 상태 루트는 data/t2editor_db, 비공개 루트는 data/t2editor_db/t2admin-private다. 그누보드5에서는 공개 루트가 G5_DATA_PATH/editor로 이동한다. 라이믹스 첨부 미디어는 T2Editor 로컬 업로드 폴더가 아니라 파일 모듈과 files 테이블의 수명을 따른다.

운영 백업에는 DB 상태, 비공개 관리자·마켓 파일과 실제 호스트 첨부파일을 포함하되, 배포 ZIP에는 세션·비밀번호·업로드·캐시·백업을 넣지 않는다.


10.5.0 기준 변경점

/integration/cms가 10.5.0의 새 호스트 경계다. registry.php, browser.js, legacy-php-api.php, legacy-browser-api.jsadapters/가 CMS별 capability를 관리한다. /config/t2_cms.php, t2_cms_auth.php, t2_cms_data.php, t2_storage.php, t2_utf8.php는 감지·인증·데이터 배치·파일 권한·문자열 대체 경로를 공통화한다. 그누보드5는 data/editor, 라이믹스는 files, 독립 환경은 T2Editor/data를 기준으로 하며 내부 상태는 각 환경의 t2editor_db 아래에 모은다.

기술 기준

T2Editor v10.5.x 문서이며, 같은 메이저·마이너 버전대의 구조와 계약을 기준으로 합니다.

T2Editor 홈으로