페이지


프래임워크는 기획한 아이디어를 현실화 하는데 매우 유용합니다. 하지만, 초보자들은 프레임워크를 처음 설치후에는 아무것도 없는 기능에 대해서 많은 실망을 하게 됩니다.

워드프레스와 같은 CMS툴과 같은 것들은 기본 화면과 초보자들도 컨덴츠를 삽입하여 페이지를 만들 수 있는 것과는 차이가 많습니다. 즉, CMS 와 프레임워크의 차이점이 입니다.

지니PHP는 프레임워크만 가지고도 막강한 정적 웹사이트를 생성할 수 있는 특별한 페키지를 제공합니다.

정적 웹사이트


정적 웹사이트는 데이터베이스 없이 고정된 웹사이트를 말합니다. 초창기의 대부분의 웹사이트는 정적 웹사이트 입니다. 이후, 데이터베이스와 서비스가 결합이 되면서 동적인 기능과 많은 코드들이 발생되었습니다.

최근에는 다시 정적 웹사이트가 인기를 얻고 있습니다. 대부분의 사이트들은 회사 홈페이지 입니다. 또한, 다양한 기능 보다는 정보을 목적으로 합니다. 이러한 페이지들은 정적 웹사이트만 가지고도 충분합니다.

또한, 정적 웹사이트는 SQL인젝션등 공격으로 부터 자유롭니다. 또한, 간단한 웹처리로 빠른 서비스를 할 수 있습니다.

지니PHP는 정적 웹사이트를 운영할 수 있는 pages페키지를 제공합니다.

동작


지니PHP는 기존 컨트롤러로 pages를 사용합니다. 입력된 url에 대한 컨트롤러가 없는 경우 자동으로 pages 컨트롤러로 대체되어 동작을 하게 됩니다. PHP코드를 작성하지 않고도 웹페이지를 꾸밀 수 있는 컨트롤러를 동작을 할 수 있습니다.

구조


대부분의 웹페이지는 정보를 제공하는 역할이 주 대상입니다. 특별한, 몇몇의 기능만의 프로그램이 필요한 동작이 대부분 입니다. 지니pages 는 입력된 url에 대한 리소스페이지를 연결하고, 화면을 처리하여 브라우저로 출력을 하게 됩니다.

폴더 만들기


지니 pages는 프레임워크 안에서 폴더와 파일 생성만을 이용하여 웹사이트를 생성할 수 있습니다. 마치 로컬 컴퓨터에서 폴더와 파일관리만 잘 하시면 됩니다.

물리적 폴더


지정된 리소스 폴더 안에서 물리적 폴더를 만들게 되면, 입력된 url의 /구분으로 접속을 할 수 있습니다. 물리적 폴더 안에는 파일명이 index로 시작된 파일이 존재해야 합니다.

지정한 리소스 폴더에 문서를 작성하면 자동으로 페이지를 생성하여 출력해 줍니다.

예를들어 aaa/bbb/ccc/index.htm 형식으로 파일을 작성하면 됩니다. 이렇게 작성한 파일은 http://도메인/aaa/bbb/ccc 로 접속할 수 있습니다.

가상 폴더

많은 폴더의 구조는 관리하기 어렵습니다. 또한, 각각의 폴더안에 동일한 이름의 index가 많이 있는 것 또한 쉽게 내용을 확인하기 어렵기 때문입니다.

이를 위해서 가상의 폴더 구분을 지원합니다. 폴더 대신에 파일명에 _를 삽입하게 되면 자동으로 폴더처럼 구분을 하게 됩니다.

예를 들어 http://도메인/aaa/bbb/ccc/ddd의 문서를 만들려고 하는 경우 aaa/bbb/ccc/ddd/index.md 파일 대신에 aaa_bbb_ccc_ddd.md 형태로도 작성이 가능합니다. 또는 aaa/bbb/ccc_ddd.md 형태로도 가능합니다.

또는 매번 디렉토리를 만들어 트리구조를 사용하는 것 대신에 aaa/bbb_ccc.htm 형태로도 작성을 할 수 있습니다. 위와 동일하게 접속을 할 수 있습니다.

작성


페이지들은 리소스/pages 폴더 안에 저장을 합니다.

지니 pages의 파일들은 다양한 형식으로 작성을 할 수 있습니다. html, markdown을 통하여 작성을 할 수 있습니다. 또한 ms-word를 통하여 문서를 작성할 수도 있습니다.

다양한 문서포맷

기본적으로 웹사이트의 페이지를 제작하기 위해서는 HTML을 알고 있어야 합니다. HTML를 이용하면 다양한 형태의 웹 페이지를 작성할 수 있습니다.

마크다운 지원

초보자들은 html을 학습하여 페이지를 작성하는 것은 진입 장벽이 있습니다. 지니PHP는 html 외에 문서 작성용으로 마크다운(markdown)포맷을 지원합니다.

마크다운은 개발자들에게 많은 사랑을 받는 문서 작성 방식입니다. 간단하게 텍스트 문서를 통하여 웹페이지를 제작할 수 있습니다.

index.md 형태로 마크다운 확장자를 이용하면 자동으로 html 파일로 변환이 이루어 집니다.

MSWord 지원

MS워드는 마이크로소프트에서 개발된 문서도구 입니다. MS워드는 상용프로그램으로 문서를 작성하는 워드프로세서 소프트웨어 입니다.

지니PHP는 MS워드를 이용하여 페이지를 작성할 수도 있습니다. MS워드를 이용하여 문서를 작성하여 리소스 폴더에 저장하면 됩니다. 페이지에 indx.docx 형태로 파일을 작성하면 자동으로 html 포맷으로 변경하여 화면을 출력하게 됩니다. 하지만 MS워드의 모든 기능과 화면 꾸미기가 완벽하게 동작을 하지는 않습니다.

캐쉬기능


MS워드는 기본적인 웨페이지 제작 도구가 아닙니다. 지니는 PHP 소스를 통하여 기존 docx 파일을 HTML로 변경을 하게 됩니다. 하지만 이러한 변경처리 작업들은 많은 시간을 소요하게 됩니다.

지니는 처음으로 docx 파일을 읽을때, 캐쉬 파일을 생성합니다. 만일 워드의 문서 갱신이 없는 경우 먼저 캐쉬파일을 읽어서 처리합니다. 이러한 캐쉬처리 방식은 보다 빠르게 웹사이트의 내용을 고객의 브라우저에게 전송을 할 수 있습니다.

오류처리


하나의 디렉토리 안에 다음과 같은 두개의 파일이 있습니다. 동적 디렉토리 처히의 경우 위와 같은 파일은 page_word.md 는 실행이 되지 않을 수 있습니다.

page.md
page_word.md

그 이유는 파일명의 첫번째 블럭은 디렉토리와 동일하게 처리되기 때문입니다. 두개의 파일중에 먼저 ~/page/ 로 항상 page.md 가 우선 처리되어 보여 지게 됩니다.

하나의 디렉토리 안에서는 동일한 앞단이 중복되면 안됩니다.

템플릿 결합


지니 pages 내에는 템플릿 언어를 같이 작성하여 사용할 수 있습니다. 또한 머리말 기능도 사용이 가능합니다.

머리말로 작성된 데이터는 pages. 접두어를 통하여 접근할 수 있습니다. 이렇게 머리말 데이터를 liquid 템플릿 문법 {{을 통하여 접근 출력 할 수 있습니다.