모델 작성 방법

1. 모델파일은 '/Model' 디렉토리에 위치하고, 클래스명 뒤에는 항상 'Model'문자로 끝납니다.
2. 모델은 항상 'BH_Model' 클래스를 상속받습니다.
3. 하나의 모델은 하나의 DB 테이블과 일치해야하고 $table 멤버변수의 값과 테이블명이 일치해야합니다.
4. 모델은 $data 이름의 'BH_ModelData' 배열 멤버변수를 갖고 있으며 배열키는 DB의 칼럼명과 일치해야합니다.
5. 생성자 '__construct' 대신에 '__Init' 메소드를 이용합니다.
6. '$key' 멤버변수는 배열로 DB의 primary key 명들을 갖습니다.
7. '$except' 멥버변수는 배열로써 사용자 입력이 불가능하게 만듭니다. 예를 들어 자동 증가값 같은 경우입니다.

회원 모델 예제

// 클래스명은 항상 'Model'문자열로 끝나고, 'BH_Model' 클래스를 상속받습니다.
			class MemberModel extends \BH_Model
			{
			  public function __Init(){
			    $this->key = array('muid'); // primary key 는 'muid' 이고,
			    $this->except = array('muid'); // 값은 자동 할당되므로 사용자 입력에서 예외처리합니다.

			    // $table 멥버변수에 실제 테이블명을 등록합니다.
			    $this->table = TABLE_MEMBER;

			    // 실제 DB 칼럼 속성이 숫자형일때 모델타입을 'ModelType::INT'로 설정합니다.
			    $this->data['muid'] = new \BH_ModelData(ModelType::INT);
			    $this->data['muid']->autoDecrement = true; // 자동 차감 속성

			    // 실제 DB 칼럼 속성이 문자형일때 모델타입을 'ModelType::STRING'으로 설정합니다.
			    $this->data['mid'] = new \BH_ModelData(ModelType::STRING, '아이디');
			    $this->data['mid']->minLength = '4'; // 아이디의 최소 길이는 4문자임을 지정합니다.
			    $this->data['mid']->maxLength = '16'; // 아이디의 최대 길이는 16문자임을 지정합니다.
			    $this->data['pwd']->required = true; // 아이디는 필수 입력입니다.

			    // 모델의 HTML속성이 이메일일때 'HTMLType::EMAIL' 속성을 명시합니다.
			    $this->data['email'] = new \BH_ModelData(ModelType::STRING, '이메일', HTMLType::EMAIL);

			    // 모델의 HTML속성이 연락처일때 'HTMLType::TEL' 속성을 명시합니다.
			    $this->data['tel'] = new \BH_ModelData(ModelType::STRING, '연락처', HTMLType::TEL);

			    // 모델타입은 'ModelType::ENUM'입니다. 실제 DB칼럼 속성은 ENUM일수도, 숫자형일수도, 문자형일수도 있습니다.
			    // 모델의 HTML속성이 라디오버튼일때 'HTMLType::RADIO' 속성을 명시합니다.
			    $this->data['approve'] = new \BH_ModelData(ModelType::ENUM, '승인여부', HTMLType::RADIO);
			    $this->data['approve']->enumValues = array('y'=>'승인','n'=>'미승인'); // enum 키와 표시명을 설정합니다.

			    // 모델타입은 'ModelType::TEXT'입니다. 모델의 HTML속성이 텍스트일때 'HTMLType::TEXTAREA' 속성을 명시합니다.
			    $this->data['admin_auth'] = new \BH_ModelData(ModelType::TEXT, 'admin_auth', HTMLType::TEXTAREA);

			    // 모델의 HTML속성이 파일이고, 이미지형식만 가능할때 'HTMLType::FILE_IMAGE' 속성을 명시합니다. 모델타입은 'ModelType::STRING'으로 설정합니다.
			    $this->data['photo1'] = new \BH_ModelData(ModelType::STRING, '사진', HTMLType::FILE_IMAGE);

			  } // __Init

			}