귀하는 로그인되어 있지 않습니다. 이대로 편집하면 귀하의 IP 주소가 편집 기록에 남게 됩니다.스팸 방지 검사입니다. 이것을 입력하지 마세요!{{틀:상위문서|라이믹스/매뉴얼}} == 개요 == '''라이믹스 프레임워크'''는 모듈과 테마 등을 구동하는 핵심 기능을 제공하는 부분이다. 일부 기능은 모듈에 위임하지만, 프레임워크에 포함된 대부분의 클래스와 함수는 특정 모듈에 종속되지 않고 독립적으로 쓸 수 있다.<ref name="framework">[https://rhymix.org/manual/reference/framework 라이믹스 프레임워크 - 라이믹스 매뉴얼]</ref> 크게 네 부분으로 이루어져 있다.<ref name="framework" /> # <code>Rhymix\Framework</code> 네임스페이스에 속한 클래스 # [[XpressEngine|XE 1.x]]에서 물려받은 레거시 전역 클래스 # 전역 함수 # 공통 상수 레거시 클래스는 서드파티 자료의 하위 호환성을 위해 남아 있으나 점차 <code>Rhymix\Framework</code>로 흡수되고 있으며, 이미 껍데기만 남아 별칭 역할만 하는 것도 있다. '''장기적으로 <code>Context</code>를 제외한 모든 전역 클래스는 지원이 중단될 예정이다.'''<ref name="framework" /> == 코어 클래스 == <code>Rhymix\Framework</code> 네임스페이스에 속한 클래스이다. 이름 뒤에 (*)가 붙은 것은 인스턴스를 만들어 사용하고, 나머지는 <code>static</code>으로 사용한다.<ref name="framework" /> {| class="wikitable" ! 클래스 !! 설명 |- | Cache || 처리 속도 향상을 위한 캐시 처리 |- | Calendar || 달력 UI 제작에 쓰는 유틸리티 함수 |- | Config || 시스템 설정의 로딩, 변환, 저장 |- | Cookie || 쿠키 생성과 조회 |- | DateTime || 날짜·시간 형식 변환과 표준 시간대 처리 |- | DB (*) || DB 접속과 관리, XML 쿼리 및 커스텀 쿼리 실행 |- | Debug || 디버그 관련 기능 |- | Exception (*) || 라이믹스 공통 예외 클래스. <code>\Exception</code>을 상속한다 |- | Formatter || 텍스트와 HTML의 상호 변환, SCSS 컴파일, 압축 및 합치기 |- | HTTP || API 호출, 크롤링, 파일 다운로드 등 외부 리소스 가져오기 |- | i18n || 표준화된 국가 및 언어 목록 제공 |- | Image || 이미지 포맷 감지 및 변환 |- | Korea || 국내 전화번호 유효성 확인과 형식 변환 등 |- | Lang (*) || 다국어 기능 |- | Mail (*) || 이메일 발송 |- | MIME || 파일 타입 파악과 확장자 처리 |- | Pagination || 페이지 분할 유틸리티 |- | Password || 여러 형식의 비밀번호 암호화와 검증 |- | Push (*) || 푸시 알림 발송 |- | Queue || 비동기 작업의 생성, 관리, 실행. 실행에는 크론 설정이 필요하다. [[라이믹스/매뉴얼/Crontab 설정 방법]] 참고 |- | Request (*) || 하나의 HTTP 요청을 표현. <code>Router</code>가 이 클래스의 인스턴스를 반환한다 |- | Router || 짧은주소 처리. [[라이믹스/라우터]] 문서 참고 |- | Security || 랜덤 문자열 생성, 암호화, 전자서명, CSRF 방어 |- | Session || 세션 처리 |- | SMS (*) || SMS 발송 |- | Storage || 파일과 디렉터리를 안전하게 다루는 유틸리티 |- | Template (*) || 템플릿 로딩, 컴파일, 출력. [[라이믹스/매뉴얼/템플릿 문법 v2]] 참고 |- | Timer || 작업 소요 시간 측정 |- | UA || <code>User-Agent</code> 해석과 그에 따른 구분 |- | URL || URL 해석과 변환 |} == 예외 클래스 == <code>Rhymix\Framework\Exceptions</code> 네임스페이스에 있다. 모두 <code>Rhymix\Framework\Exception</code>을 상속하며 용도에 따라 골라 쓴다.<ref name="framework" /> {| class="wikitable" ! 클래스 !! 용도 |- | DBError || DB 접속 오류 등 |- | FeatureDisabled || 사용할 수 없는 기능 |- | InvalidRequest || 잘못된 요청 |- | MustLogin || 로그인이 필요함 |- | NotPermitted || 권한이 없음 |- | QueryError || DB 쿼리 오류 |- | SecurityViolation || 보안 정책상 허용되지 않음 |- | TargetNotFound || 대상을 찾을 수 없음 |} == 필터 클래스 == <code>Rhymix\Framework\Filters</code> 네임스페이스에 있다. 신뢰할 수 없는 외부 입력값을 처리하는 최전방에 위치하여 라이믹스의 보안에서 핵심적인 역할을 한다.<ref name="framework" /> {| class="wikitable" ! 클래스 !! 역할 |- | FileContentFilter || 업로드된 파일의 내용에 따른 상세 필터링 |- | FilenameFilter || 파일명 필터링 |- | HTMLFilter || XSS 방지를 위한 HTML 태그 및 속성 필터링 |- | IpFilter || IP 주소 필터링 (허용·차단 목록) |- | MediaFilter || iframe 등으로 본문에 삽입된 외부 미디어의 URL 필터링 |} == 그 밖의 네임스페이스 == * <code>Rhymix\Framework\Drivers</code> — 메일, SMS 발송이나 서버 환경별 캐시 사용을 위한 드라이버가 용도별로 분류되어 있다. * <code>Rhymix\Framework\Helpers</code> — 프레임워크의 다른 영역에서 필요할 때 임의로 선언하여 쓰는 도우미 클래스. * <code>Rhymix\Framework\Parsers</code> — 템플릿과 쿼리를 비롯한 여러 파일을 해석하여 적절한 형태로 변환한다.<ref name="framework" /> == 레거시 클래스 == XE 1.x부터 존재해 온 전역 클래스이다.<ref name="legacy">[https://rhymix.org/manual/reference/legacy 레거시 클래스 - 라이믹스 매뉴얼]</ref> {| class="wikitable" ! 클래스 !! 설명 |- | BaseObject || 모듈, DB 쿼리, 이벤트 핸들러 등의 반환값을 담는 데 사용 |- | Context || 요청의 전반적인 환경 관리, 전역변수 관리, 응답 작성 메소드 제공 |- | FrontEndFileHandler || HTML 응답에 사용할 CSS, JS 리소스 관리 |- | ModuleHandler || 모듈 라이프사이클 관리 |- | ModuleObject || 모든 모듈 클래스의 기초가 되는 클래스 |- | DisplayHandler || 응답 렌더링 |- | FileHandler || 대부분 <code>Storage</code>로 대체 가능하나 일부 기능이 유지되고 있다 |- | Mobile || 대부분 <code>UA</code>로 대체 가능하나 일부 기능이 유지되고 있다 |} :※ <code>BaseObject</code>는 PHP 7.2부터 <code>Object</code>가 예약어가 되면서 이름이 바뀐 것이다. 오래된 서드파티 자료에서 발생하는 관련 오류는 [[라이믹스/매뉴얼/설치 환경#PHP 7.2 이상에서의 문제|설치 환경]] 문서를 참고하자. == 공통 상수 == === 실행 환경 === 설치 경로, 버전, 접속 환경 정보가 필요할 때는 다른 파일을 해석하거나 <code>$_SERVER</code> 같은 전역변수를 참조하기보다 아래 상수를 쓰는 것이 권장된다.<ref name="framework" /> {| class="wikitable" ! 상수 !! 설명 |- | <code>RX_VERSION</code> || 라이믹스 버전 |- | <code>RX_MICROTIME</code> || 실행 시작 시간 (유닉스 타임스탬프, 마이크로초까지) |- | <code>RX_TIME</code> || 실행 시작 시간 (유닉스 타임스탬프, 정수) |- | <code>RX_BASEDIR</code> || 설치된 서버 파일시스템 절대경로 (마지막 슬래시 있음) |- | <code>RX_BASEURL</code> || 설치된 URL의 절대경로 (마지막 슬래시 있음) |- | <code>RX_REQUEST_URL</code> || 현재 요청 URL에서 <code>RX_BASEURL</code>을 제외한 나머지 |- | <code>RX_CLIENT_IP</code> || 현재 방문자의 IP 주소 |- | <code>RX_CLIENT_IP_VERSION</code> || 방문자 IP가 IPv4면 <code>4</code>, IPv6면 <code>6</code> |- | <code>RX_SSL</code> || 현재 요청이 SSL/TLS를 사용하면 <code>true</code> |- | <code>RX_POST</code> || 현재 요청이 POST면 <code>true</code> |- | <code>RX_WINDOWS</code> || 윈도우 서버면 <code>true</code> |} === 문서 상태값 === 문서나 댓글의 상태를 표현하는 값이다. 현재 <code>PUBLIC</code>과 <code>SECRET</code>이 코어에 구현되어 있고, 나머지는 서드파티 자료가 공통으로 쓰도록 미리 선언해 둔 표준이다.<ref name="framework" /> {| class="wikitable" ! 상수 !! 값 !! 상수 !! 값 |- | <code>RX_STATUS_TEMP</code> || 0 || <code>RX_STATUS_CENSORED</code> || 5 |- | <code>RX_STATUS_PUBLIC</code> || 1 || <code>RX_STATUS_CENSORED_BY_ADMIN</code> || 6 |- | <code>RX_STATUS_SECRET</code> || 2 || <code>RX_STATUS_DELETED</code> || 7 |- | <code>RX_STATUS_EMBARGO</code> || 3 || <code>RX_STATUS_DELETED_BY_ADMIN</code> || 8 |- | <code>RX_STATUS_TRASH</code> || 4 || <code>RX_STATUS_OTHER</code> || 9 |- | <code>RX_STATUS_PRIVATE</code> || 10 || || |} 이 밖에 <code>DIGITS</code>, <code>XDIGITS</code>, <code>ALPHABETS</code>, <code>UPPER</code>, <code>LOWER</code> 같은 문자 범위 상수와 <code>CR</code>, <code>LF</code>, <code>CRLF</code> 개행 문자 상수가 선언되어 있다.<ref name="framework" /> === XE 호환용 상수 === <code>__XE__</code>, <code>__XE_VERSION__</code>, <code>_XE_PATH_</code>, <code>Y</code>, <code>N</code> 등 XE 시절의 상수도 호환을 위해 제공되지만, '''더 이상 사용하지 않는 것이 권장된다.'''<ref name="framework" /> == 같이 보기 == * [[라이믹스/매뉴얼]] * [[라이믹스/라우터]] * [[라이믹스/애드온]] * [[라이믹스/매뉴얼/설치 환경]] == 각주 == <references /> <!-- 분류 --> [[분류:라이믹스]] [[분류:라이믹스/매뉴얼]] 편집 요약 가온 위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-동일조건변경허락 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는 가온 위키:저작권 문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요. 또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다. 저작권이 있는 내용을 허가 없이 저장하지 마세요! 취소 편집 도움말 (새 창에서 열림) 이 문서에서 사용한 틀: 틀:상위문서 (편집) 틀:상위문서/styles.css (편집)