DBTableField 에 Table 이나 Column 추가 방법

DBTableField 란

  • 고도몰 솔루션에서 사용하는 모든 Table 과 Column을 정의해 둔 Class 이며 자동으로 Table 과 Column을 불러와서 사용할수 있게 해주는 기능을 합니다.

Component 위치

  • 고도몰 원본 소스의 Bundle/Component/Database 에 있으며 파일명은 DBTableField.php 입니다.

Table 이나 Column 추가시 기본내용

  • 사용자 소스의 module/Component/Database 폴더 하위에 DBTableField.php 파일을 생성을 합니다.
  • 원본 소스의 Component 를 상속하여 확장 개발을 합니다.
<?php
namespace Component\Database;
class DBTableField extends \Bundle\Component\Database\DBTableField
{
    public static function Methods_Name()
    {
    }
}

Table 추가

  • es_testTable 라는 Table 추가시
  • Methods명은 table + es_를 뺀 첫문자 대문자인 table 이름 입니다.
  • val 은 Column 명, typ 은 Column Type 로서 숫자형은 i 문자형은 s, def 은 기본값 입니다.
<?php
namespace Component\Database;
class DBTableField extends \Bundle\Component\Database\DBTableField
{
    public static function tableTestTable()
    {
        $arrField = [
            ['val' => 'sno', 'typ' => 'i', 'def' => null], // 일련번호
            ['val' => 'testNo', 'typ' => 'i', 'def' => '1'], // 테스트 번호
            ['val' => 'testId', 'typ' => 's', 'def' => null], // 테스트 아이디
        ];
        return $arrField;
    }
}

Column 추가

  • 기존의 Methods 를 그대로 사용을 하고 원래 Methods 의 것을 가지고 와서 처리함.
  • 아래는 상품 table에 Column을 추가하는 예제입니다.
<?php
namespace Component\Database;
class DBTableField extends \Bundle\Component\Database\DBTableField
{
    public static function tableGoods($conf = null)
    {
        // 부모 method 상속
        $arrField = parent::tableGoods($conf);
        
        // 추가 필드
        $arrField[] = ['val' => 'testNo', 'typ' => 'i', 'def' => '1']; // 테스트 번호
        $arrField[] = ['val' => 'testId', 'typ' => 's', 'def' => null]; // 테스트 아이디
        
        // 필드값 리턴
        return $arrField;
    }
}