라이믹스/매뉴얼/라이믹스 프레임워크

상위 문서: 라이믹스/매뉴얼

개요[편집 / 원본 편집]

라이믹스 프레임워크는 모듈과 테마 등을 구동하는 핵심 기능을 제공하는 부분이다. 일부 기능은 모듈에 위임하지만, 프레임워크에 포함된 대부분의 클래스와 함수는 특정 모듈에 종속되지 않고 독립적으로 쓸 수 있다.[1]

크게 네 부분으로 이루어져 있다.[1]

  1. Rhymix\Framework 네임스페이스에 속한 클래스
  2. XE 1.x에서 물려받은 레거시 전역 클래스
  3. 전역 함수
  4. 공통 상수

레거시 클래스는 서드파티 자료의 하위 호환성을 위해 남아 있으나 점차 Rhymix\Framework로 흡수되고 있으며, 이미 껍데기만 남아 별칭 역할만 하는 것도 있다. 장기적으로 Context를 제외한 모든 전역 클래스는 지원이 중단될 예정이다.[1]

코어 클래스[편집 / 원본 편집]

Rhymix\Framework 네임스페이스에 속한 클래스이다. 이름 뒤에 (*)가 붙은 것은 인스턴스를 만들어 사용하고, 나머지는 static으로 사용한다.[1]

클래스 설명
Cache 처리 속도 향상을 위한 캐시 처리
Calendar 달력 UI 제작에 쓰는 유틸리티 함수
Config 시스템 설정의 로딩, 변환, 저장
Cookie 쿠키 생성과 조회
DateTime 날짜·시간 형식 변환과 표준 시간대 처리
DB (*) DB 접속과 관리, XML 쿼리 및 커스텀 쿼리 실행
Debug 디버그 관련 기능
Exception (*) 라이믹스 공통 예외 클래스. \Exception을 상속한다
Formatter 텍스트와 HTML의 상호 변환, SCSS 컴파일, 압축 및 합치기
HTTP API 호출, 크롤링, 파일 다운로드 등 외부 리소스 가져오기
i18n 표준화된 국가 및 언어 목록 제공
Image 이미지 포맷 감지 및 변환
Korea 국내 전화번호 유효성 확인과 형식 변환 등
Lang (*) 다국어 기능
Mail (*) 이메일 발송
MIME 파일 타입 파악과 확장자 처리
Pagination 페이지 분할 유틸리티
Password 여러 형식의 비밀번호 암호화와 검증
Push (*) 푸시 알림 발송
Queue 비동기 작업의 생성, 관리, 실행. 실행에는 크론 설정이 필요하다. 라이믹스/매뉴얼/Crontab 설정 방법 참고
Request (*) 하나의 HTTP 요청을 표현. Router가 이 클래스의 인스턴스를 반환한다
Router 짧은주소 처리. 라이믹스/라우터 문서 참고
Security 랜덤 문자열 생성, 암호화, 전자서명, CSRF 방어
Session 세션 처리
SMS (*) SMS 발송
Storage 파일과 디렉터리를 안전하게 다루는 유틸리티
Template (*) 템플릿 로딩, 컴파일, 출력. 라이믹스/매뉴얼/템플릿 문법 v2 참고
Timer 작업 소요 시간 측정
UA User-Agent 해석과 그에 따른 구분
URL URL 해석과 변환

예외 클래스[편집 / 원본 편집]

Rhymix\Framework\Exceptions 네임스페이스에 있다. 모두 Rhymix\Framework\Exception을 상속하며 용도에 따라 골라 쓴다.[1]

클래스 용도
DBError DB 접속 오류 등
FeatureDisabled 사용할 수 없는 기능
InvalidRequest 잘못된 요청
MustLogin 로그인이 필요함
NotPermitted 권한이 없음
QueryError DB 쿼리 오류
SecurityViolation 보안 정책상 허용되지 않음
TargetNotFound 대상을 찾을 수 없음

필터 클래스[편집 / 원본 편집]

Rhymix\Framework\Filters 네임스페이스에 있다. 신뢰할 수 없는 외부 입력값을 처리하는 최전방에 위치하여 라이믹스의 보안에서 핵심적인 역할을 한다.[1]

클래스 역할
FileContentFilter 업로드된 파일의 내용에 따른 상세 필터링
FilenameFilter 파일명 필터링
HTMLFilter XSS 방지를 위한 HTML 태그 및 속성 필터링
IpFilter IP 주소 필터링 (허용·차단 목록)
MediaFilter iframe 등으로 본문에 삽입된 외부 미디어의 URL 필터링

그 밖의 네임스페이스[편집 / 원본 편집]

  • Rhymix\Framework\Drivers — 메일, SMS 발송이나 서버 환경별 캐시 사용을 위한 드라이버가 용도별로 분류되어 있다.
  • Rhymix\Framework\Helpers — 프레임워크의 다른 영역에서 필요할 때 임의로 선언하여 쓰는 도우미 클래스.
  • Rhymix\Framework\Parsers — 템플릿과 쿼리를 비롯한 여러 파일을 해석하여 적절한 형태로 변환한다.[1]

레거시 클래스[편집 / 원본 편집]

XE 1.x부터 존재해 온 전역 클래스이다.[2]

클래스 설명
BaseObject 모듈, DB 쿼리, 이벤트 핸들러 등의 반환값을 담는 데 사용
Context 요청의 전반적인 환경 관리, 전역변수 관리, 응답 작성 메소드 제공
FrontEndFileHandler HTML 응답에 사용할 CSS, JS 리소스 관리
ModuleHandler 모듈 라이프사이클 관리
ModuleObject 모든 모듈 클래스의 기초가 되는 클래스
DisplayHandler 응답 렌더링
FileHandler 대부분 Storage로 대체 가능하나 일부 기능이 유지되고 있다
Mobile 대부분 UA로 대체 가능하나 일부 기능이 유지되고 있다
BaseObject는 PHP 7.2부터 Object가 예약어가 되면서 이름이 바뀐 것이다. 오래된 서드파티 자료에서 발생하는 관련 오류는 설치 환경 문서를 참고하자.

공통 상수[편집 / 원본 편집]

실행 환경[편집 / 원본 편집]

설치 경로, 버전, 접속 환경 정보가 필요할 때는 다른 파일을 해석하거나 $_SERVER 같은 전역변수를 참조하기보다 아래 상수를 쓰는 것이 권장된다.[1]

상수 설명
RX_VERSION 라이믹스 버전
RX_MICROTIME 실행 시작 시간 (유닉스 타임스탬프, 마이크로초까지)
RX_TIME 실행 시작 시간 (유닉스 타임스탬프, 정수)
RX_BASEDIR 설치된 서버 파일시스템 절대경로 (마지막 슬래시 있음)
RX_BASEURL 설치된 URL의 절대경로 (마지막 슬래시 있음)
RX_REQUEST_URL 현재 요청 URL에서 RX_BASEURL을 제외한 나머지
RX_CLIENT_IP 현재 방문자의 IP 주소
RX_CLIENT_IP_VERSION 방문자 IP가 IPv4면 4, IPv6면 6
RX_SSL 현재 요청이 SSL/TLS를 사용하면 true
RX_POST 현재 요청이 POST면 true
RX_WINDOWS 윈도우 서버면 true

문서 상태값[편집 / 원본 편집]

문서나 댓글의 상태를 표현하는 값이다. 현재 PUBLICSECRET이 코어에 구현되어 있고, 나머지는 서드파티 자료가 공통으로 쓰도록 미리 선언해 둔 표준이다.[1]

상수 상수
RX_STATUS_TEMP 0 RX_STATUS_CENSORED 5
RX_STATUS_PUBLIC 1 RX_STATUS_CENSORED_BY_ADMIN 6
RX_STATUS_SECRET 2 RX_STATUS_DELETED 7
RX_STATUS_EMBARGO 3 RX_STATUS_DELETED_BY_ADMIN 8
RX_STATUS_TRASH 4 RX_STATUS_OTHER 9
RX_STATUS_PRIVATE 10

이 밖에 DIGITS, XDIGITS, ALPHABETS, UPPER, LOWER 같은 문자 범위 상수와 CR, LF, CRLF 개행 문자 상수가 선언되어 있다.[1]

XE 호환용 상수[편집 / 원본 편집]

__XE__, __XE_VERSION__, _XE_PATH_, Y, N 등 XE 시절의 상수도 호환을 위해 제공되지만, 더 이상 사용하지 않는 것이 권장된다.[1]

같이 보기[편집 / 원본 편집]

각주[편집 / 원본 편집]

최근 바뀜

더 보기