git-svn-id: http://xe-core.googlecode.com/svn/trunk@793 201d5d3c-b55e-5fd7-737f-ddc643e51545

This commit is contained in:
zero 2007-03-30 04:00:07 +00:00
parent da1fe7f3b1
commit 2b97664ba0
13 changed files with 83 additions and 87 deletions

View file

@ -4,10 +4,10 @@
* @author zero (zero@nzeo.com) * @author zero (zero@nzeo.com)
* @brief Request Argument/환경변수등의 모든 Context를 관리 * @brief Request Argument/환경변수등의 모든 Context를 관리
* *
* Context 클래스는 Context::methodname() 처럼 쉽게 사용하기 위해 만들어진 객체를 받아서\n * Context 클래스는 Context::methodname() 처럼 쉽게 사용하기 위해 만들어진 객체를 받아서
* 호출하는 구조를 위해 이중 method 구조를 가지고 있다.\n * 호출하는 구조를 위해 이중 method 구조를 가지고 있다.
* php5에서 static variables를 사용하게 된다면 불필요한 구조를 제거할 있다.\n * php5에서 static variables를 사용하게 된다면 불필요한 구조를 제거할 있다.
* php5 쓰고 어라.. . * php5 쓰고 .. .
**/ **/
class Context { class Context {

View file

@ -5,15 +5,12 @@
* @brief DB* 상위 클래스 * @brief DB* 상위 클래스
* @version 0.1 * @version 0.1
* *
* 제로보드의 DB 사용은 xml을 이용하여 이루어짐을 원칙으로 한다.\n * 제로보드의 DB 사용은 xml을 이용하여 이루어짐을 원칙으로 한다.
* xml의 종류에는 query xml, schema xml이 있다.\n * xml의 종류에는 query xml, schema xml이 있다.
* query xml의 경우 DB::executeQuery() method를 이용하여 xml파일을\n * query xml의 경우 DB::executeQuery() method를 이용하여 xml파일을 php code로 compile한 후에 실행이 된다.
* php code로 compile한 후에 실행이 된다.\n * query xml은 고유한 query id를 가지며 생성은 module에서 이루어진다.
* query xml은 고유한 query id를 가지며 생성은 module에서 이루어진다.\n *
* \n * queryid = 모듈.쿼리명
* queryid = 모듈.쿼리명\n
* \n
* 으로 된다.\n
**/ **/
class DB { class DB {

View file

@ -4,10 +4,10 @@
* @author zero (zero@nzeo.com) * @author zero (zero@nzeo.com)
* @brief 데이터 출력을 위한 class (XML/HTML 데이터를 구분하여 출력) * @brief 데이터 출력을 위한 class (XML/HTML 데이터를 구분하여 출력)
* *
* Request Method에 따라서 html or xml 출력방법을 결정한다\n * Response Method에 따라서 html or xml 출력방법을 결정한다
* xml : oModule의 variables를 simple xml 출력\n * xml : oModule의 variables를 simple xml 출력
* html : oModule의 template/variables로 html을 만들고 contents_html로 처리\n * html : oModule의 template/variables로 html을 만들고 contents_html로 처리
* plugin이나 layout의 html과 연동하여 출력\n * plugin이나 layout의 html과 연동하여 출력
**/ **/
class DisplayHandler extends Handler { class DisplayHandler extends Handler {

View file

@ -2,7 +2,9 @@
/** /**
* @class EditorHandler * @class EditorHandler
* @author zero (zero@nzeo.com) * @author zero (zero@nzeo.com)
* @brief addon을 호출하여 실행 * @brief edit component의 상위 클래스임
*
* 주로 하는 일은 컴포넌트 요청시 컴포넌트에서 필요로 하는 변수를 세팅해준다
**/ **/
class EditorHandler extends Object { class EditorHandler extends Object {
@ -13,12 +15,12 @@
function setInfo($info) { function setInfo($info) {
Context::set('component_info', $info); Context::set('component_info', $info);
if($info->extra_vars) { if(!$info->extra_vars) return;
foreach($info->extra_vars as $key => $val) { foreach($info->extra_vars as $key => $val) {
$this->{$key} = trim($val->value); $this->{$key} = trim($val->value);
} }
} }
}
} }

View file

@ -2,7 +2,7 @@
/** /**
* @class Handler * @class Handler
* @author zero (zero@nzeo.com) * @author zero (zero@nzeo.com)
* @brief *Handler 클래스의 추상화 클래스 * @brief (*)Handler 클래스의 추상화 클래스
**/ **/
class Handler { class Handler {

View file

@ -8,6 +8,7 @@
* constructor에 아무 인자 없이 객체를 생성하면 현재 요청받은 * constructor에 아무 인자 없이 객체를 생성하면 현재 요청받은
* 상태를 바탕으로 적절한 모듈을 찾게 되고, * 상태를 바탕으로 적절한 모듈을 찾게 되고,
* 별도의 인자 값을 경우 그에 맞는 모듈을 찾아서 실행한다. * 별도의 인자 값을 경우 그에 맞는 모듈을 찾아서 실행한다.
* 만약 찾아진 모듈의 요청된 act 없으면 action_foward를 참조하여 다른 모듈의 act를 실행한다.
**/ **/
class ModuleHandler extends Handler { class ModuleHandler extends Handler {

View file

@ -2,7 +2,7 @@
/** /**
* @class ModuleObject * @class ModuleObject
* @author zero (zero@nzeo.com) * @author zero (zero@nzeo.com)
* @brief module의 abstract class * @brief module의 상위 클래스
**/ **/
class ModuleObject extends Object { class ModuleObject extends Object {

View file

@ -4,8 +4,7 @@
* @author zero (zero@nzeo.com) * @author zero (zero@nzeo.com)
* @brief 모듈간의 데이터를 주고 받기 위한 클래스 * @brief 모듈간의 데이터를 주고 받기 위한 클래스
* *
* Model, Controller, View로 이루어지는 모듈은\n * 모든 모듈은 Object를 상속하며 Object의 error, message, variables 이용하여 통신을 하게 된다
* Object class를 상속받는다.
**/ **/
class Object { class Object {

View file

@ -2,7 +2,7 @@
/** /**
* @class PluginHandler * @class PluginHandler
* @author zero (zero@nzeo.com) * @author zero (zero@nzeo.com)
* @brief addon을 호출하여 실행 * @brief 플러그인의 실행을 담당
**/ **/
class PluginHandler { class PluginHandler {
@ -49,5 +49,4 @@
} }
} }
?> ?>

View file

@ -5,8 +5,7 @@
* @brief 템플릿 컴파일러 * @brief 템플릿 컴파일러
* @version 0.1 * @version 0.1
* *
* 정규표현식을 이용하여 템플릿 파일을 컴파일하여 php코드로 변경하고\n * 정규표현식을 이용하여 템플릿 파일을 컴파일하여 php코드로 변경하고 파일을 caching하여 사용할 있도록 하는 템플릿 컴파일러
* 파일을 caching하여 사용할 있도록 하는 템플릿 컴파일러\n
**/ **/
class TemplateHandler extends Handler { class TemplateHandler extends Handler {

View file

@ -5,37 +5,37 @@
* @brief filter xml문서를 해석하여 js파일로 만듬 * @brief filter xml문서를 해석하여 js파일로 만듬
* @version 0.1 * @version 0.1
* *
* xml filter 파일은 js script로 컴파일 되어 캐싱됨\n * xml filter 파일은 js script로 컴파일 되어 캐싱됨
* \n *
* <filter name="js function 이름" act="서버에 요청할 action 이름" confirm_msg_code="submit시에 prompt로 물어볼 메세지의 코드" >\n * <filter name="js function 이름" act="서버에 요청할 action 이름" confirm_msg_code="submit시에 prompt로 물어볼 메세지의 코드" >
* <form> <-- 항목의 체크\n * <form> <-- 항목의 체크
* <node target="name" required="true" minlength="1" maxlength="5" filter="email,userid,alpha,number" equalto="target" />\n * <node target="name" required="true" minlength="1" maxlength="5" filter="email,userid,alpha,number" equalto="target" />
* </form>\n * </form>
* <parameter> <-- 항목을 조합하여 key=val js array로 return, act는 필수\n * <parameter> <-- 항목을 조합하여 key=val js array로 return, act는 필수
* <param name="key" target="target" />\n * <param name="key" target="target" />
* </parameter>\n * </parameter>
* <response callback_func="callback 받게 될 js function 이름 지정" > <-- 서버에 ajax로 전송하여 받을 결과값\n * <response callback_func="callback 받게 될 js function 이름 지정" > <-- 서버에 ajax로 전송하여 받을 결과값
* <tag name="error" /> <-- error이름의 결과값을 받겠다는 \n * <tag name="error" /> <-- error이름의 결과값을 받겠다는
* </response>\n * </response>
* </filter>\n * </filter>
* \n *
* - form - node\n * - form - node
* target = element의 이름\n * target = element의 이름
* required = true/ false 있어야 하는지에 대한 체크\n * required = true/ false 있어야 하는지에 대한 체크
* minlength, maxlength = 최소/최대 길이\n * minlength, maxlength = 최소/최대 길이
* filter = javascript로 체크하기 위한 체크 필터\n * filter = javascript로 체크하기 위한 체크 필터
* email : email의 형식 ( aaa.aaa@aaa.com)\n * email : email의 형식 ( aaa.aaa@aaa.com)
* userid : 영문+숫자+_, 글자는 영문, 소문자\n * userid : 영문+숫자+_, 글자는 영문, 소문자
* alpha : 영문값만 허용\n * alpha : 영문값만 허용
* number : 숫자만 허용\n * number : 숫자만 허용
* equalto = target , 현재 폼과 지정 target의 값이 동일해야 \n * equalto = target , 현재 폼과 지정 target의 값이 동일해야
* \n *
* - parameter - param\n * - parameter - param
* name = key : key를 이름으로 가지고 value의 값을 가지는 array 생성\n * name = key : key를 이름으로 가지고 value의 값을 가지는 array 생성
* target = target_name : target form element의 값을 가져옴\n * target = target_name : target form element의 값을 가져옴
* \n *
* - response\n * - response
* tag = key : return받을 결과값의 변수명\n * tag = key : return받을 결과값의 변수명
**/ **/
class XmlJsFilter extends XmlParser { class XmlJsFilter extends XmlParser {

View file

@ -5,9 +5,8 @@
* @brief xmlrpc를 해석하여 object로 return 하는 simple xml parser * @brief xmlrpc를 해석하여 object로 return 하는 simple xml parser
* @version 0.1 * @version 0.1
* *
* xml 데이터의 attribute중에 xml:lang="" 있을 경우 지정된 lang\n * xml 데이터의 attribute중에 xml:lang="ko,en,ch,jp,..." 있을 경우 지정된 lang 값에 해당하는 것만 남기는 트릭이 적용됨.
* 값에 해당하는 것만 남기는 트릭이 적용됨.\n * 무슨 문제를 일으킬지는 현재 모르나 동작하고 있음
* 무슨 문제를 일으킬지는 현재 모르나 동작하고 있음\n
**/ **/
class XmlParser { class XmlParser {

View file

@ -2,7 +2,7 @@
/** /**
* @class XmlQueryParser * @class XmlQueryParser
* @author zero (zero@nzeo.com) * @author zero (zero@nzeo.com)
* @brief query xml을 파싱하여 결과를 return * @brief query xml을 파싱하여 캐싱을 결과를 return
* @version 0.1 * @version 0.1
* *
* @todo subquery나 union등의 확장 쿼리에 대한 지원이 필요 * @todo subquery나 union등의 확장 쿼리에 대한 지원이 필요
@ -25,7 +25,7 @@
); );
/** /**
* @brief 쿼리 파일을 찾아서 파싱하고 cacheing한다 * @brief 쿼리 파일을 찾아서 파싱하고 캐싱한다
**/ **/
function parse($query_id, $xml_file, $cache_file) { function parse($query_id, $xml_file, $cache_file) {
// query xml 파일을 찾아서 파싱, 결과가 없으면 return // query xml 파일을 찾아서 파싱, 결과가 없으면 return