아키텍처 개요
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, 관리자 화면 포함) | 모듈 | 모듈 제작 |
| 기존 모듈의 겉모습 | 모듈 스킨 | 스킨·레이아웃 제작 |
| 사이트 전체 틀 | 레이아웃 | 스킨·레이아웃 제작 |
| 레이아웃+스킨 세트 | 테마 패키지 | 테마 패키지 만들기 |
| 모든 요청에 끼어드는 가벼운 동작 | 애드온 | (예정) |
| 레이아웃 어디든 꽂는 콘텐츠 조각 | 위젯 | (예정) |