개발자 가이드

아키텍처 개요

Zittme 위에서 모듈·스킨·레이아웃·테마를 만들기 전에 알아야 할 최소한의 구조를 정리합니다.

라이믹스와의 관계

Zittme는 라이믹스(Rhymix) 2.1.35에서 갈라져 나온 GPL v2 엔진입니다. 서드파티 제작 관점에서 중요한 것은 호환성입니다.

  • 코어 네임스페이스는 Zittme\ 입니다. Rhymix\ 는 호환 별칭으로 남아 있어, 기존 라이믹스용 모듈이 Rhymix\Framework\... 를 호출해도 그대로 동작합니다.
  • 새로 만드는 코드는 Zittme\ 기준으로 작성하세요.
  • 라이믹스용으로 만든 모듈·스킨·레이아웃은 대부분 수정 없이 동작합니다. Zittme 고유 기능(테마 패키지, 반복 필드, 반응형 표시)은 라이믹스에 설치해도 무시될 뿐 오류를 내지 않게 설계되어 있습니다.

폴더 구조

경로내용
common/framework/코어 프레임워크 클래스 (Zittme\Framework\...)
classes/레거시 코어 클래스 (Context, ModuleHandler 등)
modules/모듈. 기능의 기본 단위
layouts/, m.layouts/레이아웃 (PC / 모바일 전용)
themes/테마 패키지
addons/애드온 (요청 처리 중간에 끼어드는 가벼운 확장)
widgets/위젯
files/업로드 파일·캐시·설정. 사이트 데이터라 배포본에 포함하지 않음

요청 흐름

모든 요청은 index.php 로 들어와 두 값으로 실행할 코드를 정합니다.

  • mid: 모듈 인스턴스 이름. 사이트맵에서 만든 "게시판 하나, 페이지 하나"가 각각 mid 입니다. 주소의 첫 조각이 됩니다 (/board, /manual).
  • act: 실행할 액션 이름 (dispBoardContent, procBoardInsertDocument). 모듈의 conf/module.xml 에 선언된 것만 실행됩니다.

액션 이름에는 규칙이 있습니다.

접두어호출 방식
disp화면을 그린다GET
proc데이터를 처리한다POST (CSRF 토큰 자동 검사)
getApi데이터를 반환한다용도에 따라

주소를 mid/문서번호, mid/write 처럼 깔끔하게 만들려면 액션에 라우트를 선언합니다. 모듈 제작 문서에서 다룹니다.

데이터베이스

SQL을 직접 쓰지 않습니다. 쿼리는 XML 파일(queries/*.xml)로 선언하고 executeQuery('모듈명.쿼리명', $args) 로 실행합니다. 테이블도 XML(schemas/*.xml)로 선언하면 모듈 설치 때 코어가 만들어 줍니다. 자세한 내용은 쿼리 XML을 보세요.

템플릿

화면은 템플릿 파일(HTML)로 그립니다. 문법은 두 세대가 공존합니다.

  • v2 (권장): 파일 첫 줄에 @version(2). @if / @foreach / {{ }} 스타일
  • v1 (레거시): cond="", loop="" 속성 스타일. 기존 자료 호환용

새 자료는 v2로 만드세요. 템플릿 문법 v2 참고.

확장하는 방법 요약

만들고 싶은 것수단문서
새로운 기능 (DB, 관리자 화면 포함)모듈모듈 제작
기존 모듈의 겉모습모듈 스킨스킨·레이아웃 제작
사이트 전체 틀레이아웃스킨·레이아웃 제작
레이아웃+스킨 세트테마 패키지테마 패키지 만들기
모든 요청에 끼어드는 가벼운 동작애드온(예정)
레이아웃 어디든 꽂는 콘텐츠 조각위젯(예정)