Dolibarr 모듈 개발
모듈 개발
모듈 개발 단계
필수
- 모듈 설명자 생성 (사전준비)
모듈 빌더(Module Builder)라는 표준 모듈을 활성화하여, 모듈 설명자를 생성한다. (버그 이미지 클릭)
모듈 설명자 생성은 돌리바르 모듈 개발의 첫 번째 필수 단계로서, 개발하는 모듈의 기본적인 정보를 시스템에 제공하여 모듈이 정상적으로 작동하고 관리될 수 있도록 하는 중요한 과정입니다. 모듈 빌더를 사용하거나 수동으로 파일을 생성 및 수정하여 모듈 설명자를 만들 수 있으며, 생성 후에는 반드시 테스트를 거쳐 시스템에 제대로 인식되는지 확인해야 한ㄷ.
- 수동 모듈 설명자 생성
1. 모듈 디렉토리 생성
외부 모듈: htdocs/custom/
코어 모듈: /htdocs/ 아래에 모듈 이름 디렉토리 생성하고 /core/modules 디렉토리고 구성 (즉, 직접 core 디렉토리 만들지 않음!)
예) 를 들어, 'mymodule'이라는 모듈을 개발한다면 /htdocs/custom/mymodule/core/modules 또는 /htdocs/mymodule/core/modules와 같은 경로가 된다.
2. 템플릿 파일 복사 htdocs/modulebuilder/template 디렉토리에서 modMyModule.class.php 파일을 생성한 모듈의 /core/modules 디렉토리로 복사
3. 파일 이름 변경 복사한 modMyModule.class.php 파일의 이름을 개발하려는 모듈의 목적에 맞게 변경합니다. 이때 파일 이름은 반드시 mod로 시작하고 .class.php로 끝 나야 한다.
예) 예를 들어, 모듈 이름이 'NewName'이라면 파일 이름은 modNewName.class.php가 되어야 합니다
4.파일 내용 수정: 복사 및 이름 변경한 PHP 파일의 내용을 다음과 같이 수정합니다:
◦ 클래스 이름 변경: 파일 내용에 있는 모든 "modMyModule"을 모듈의 목적에 맞는 이름 (예: "modNewName")으로 변경합니다. 이 값 역시 항상 mod로 시작하고 영문자로만 구성되어야 합니다.
◦ 모듈 ID 설정: $this->numero = 100000; 라인에서 100000을 개발하는 모듈의 고유한 ID로 변경합니다. 다른 모듈과의 충돌을 피하기 위해 이미 예약된 ID 목록 페이지를 참고해야 합니다.
◦ 생성자 변수 수정: 생성자 (constructor)에 정의된 다른 변수들의 의미를 코드 내 주석을 참고하여 필요에 따라 수정합니다
모듈 설명자 테스트:
모듈 설명자 파일을 생성하고 수정한 후에는 돌리바르에서 해당 모듈이 인식되는지 테스트해야 합니다.
- 돌리바르에 접속하여 설정(Setup) -> 모듈(Module) 페이지로 이동합니다.
- 모듈 설명에 version 속성을 올바르게 설정했다면, 새로운 모듈이 목록에 나타나고 활성화/비활성화 옵션을 확인할 수 있습니다.
- version 속성을 "develop" 또는 "experimental"로 설정한 경우, 모듈을 보기 위해서는 먼저 설정(Setup) -> 기타(Others) 페이지로 이동하여 MAIN_FEATURES_LEVEL을 1 (실험적 모듈) 또는 2 (개발 모듈)로 설정해야 합니
- 모듈 파일 경로 구조
정확한 파일 경로 구조는 돌리바르가 모듈의 다양한 구성 요소 (클래스, SQL 스크립트, 템플릿, 설정 페이지 등)를 올바르게 찾고 실행할 수 있도록 기반이 된다.
배포를 위한 ZIP파일 구조를 만들 때도, 현재 파일 구조를 사용하여 만든다.
파일 구조
• mymodule/build/: 컴파일 또는 패키지 빌드 관련 파일을 포함할 수 있습니다. • mymodule/core/modules/: 모듈 설명자 파일인 modMyModule.class.php를 포함해야 합니다. • mymodule/core/triggers: 모듈에서 제공하는 트리거 파일을 포함합니다. • mymodule/admin/: 모듈 설정 페이지 관련 파일을 포함합니다. • mymodule/class/: 모듈에서 제공하는 PHP 클래스 파일을 포함합니다. • mymodule/css/: 모듈의 CSS 파일을 포함합니다. • mymodule/js/: 새로운 기능을 위한 Javascript 파일을 포함합니다. • mymodule/docs/: 문서 및 라이선스 파일을 포함합니다. • mymodule/img/: 이미지 파일을 포함합니다. • mymodule/langs/xx_XX/: 특정 언어 (xx_XX)에 대한 언어 파일을 포함하며, 최소한 en_US를 포함하는 것이 좋습니다. • mymodule/lib/: 모듈에서 사용되는 라이브러리를 포함합니다. • mymodule/scripts/: 명령줄 도구나 스크립트를 포함하며, #!/usr/bin/env php로 시작해야 합니다. • mymodule/sql/: 새로운 테이블이나 인덱스를 추가하기 위한 SQL 파일을 포함합니다. • mymodule/theme/mytheme/: 모듈 자체의 테마/스킨을 제공하는 경우 관련 파일을 포함합니다.
이해 하기 위한 예)
모듈 설명자 파일이 위치하는 mymodule/core/modules/ 디렉토리에 존재함 데이터베이스 테이블을 추가하는 모듈이라면 SQL 파일은 반드시 mymodule/sql/ 디렉토리 PHP 관련 클래스는 mymodule/class/ 디렉토리 설정 페이지는 mymodule/admin/, 언어 파일은 mymodule/langs/xx_XX/에 위치함
- 자체 번호 매기기 규칙 추가
선택 사항
- SQL 테이블 및 PHP DAO 클래스 생성
SQL 테이블 및 PHP DAO 클래스 생성, 모듈의 데이터 모델을 정의하고, 데이터베이스와의 상호작용을 추상화하여 효율적이고 체계적인 데이터 관리한다.
SQL 테이블 및 PHP DAO 클래스 생성 단계는 일반적으로 모듈 설명자를 생성하고 기본적인 파일 구조를 설정한 이후에 진행한다.
모듈이 관리할 데이터 구조가 결정되면, 데이터베이스 테이블로 정의하고 해당 데이터에 접근하고 조직하기 위한 PHP 클래스를 만든다.
- SQL 테이블 생성:
• 모듈에서 자체 데이터를 관리해야 하는 경우, 데이터를 저장하기 위한 SQL 테이블을 정의해야 합니다.
• 테이블 생성 및 데이터 로딩 스크립트는 모듈 디렉토리의 sql 하위 디렉토리 (mymodule/sql/)에 저장됩니다. ModuleBuilder를 사용하는 경우, 새로운 객체를 생성할 때 이 디렉토리와 SQL 파일이 자동으로 생성될 수 있습니다.
• 모듈 설명자 파일의 init 함수 내에서 $this->_load_tables('/mymodule/sql/'); 라인이 주석 처리되어 있지 않은지 확인해야 합니다. 이 라인은 모듈이 활성화될 때 SQL 테이블을 로드하는 역할을 합니다.
• 테이블 생성 명령은 테이블당 하나의 .sql 파일 (llx_mytable.sql) 원칙에 따라 작성하며, 필요한 경우 인덱스 관련 파일 (llx_mytable.key.sql)을 추가할 수 있습니다. 기존 테이블 구조는 install/mysql/tables 디렉토리에서 참고할 수 있습니다.
• SQL 필드의 권장 유형 및 이름 규칙은 Language_and_development_rules#Table_and_fields_structures 페이지를 참조해야 합니다.
• 초기 데이터를 추가/수정/삭제하기 위한 SQL 명령은 mymodule/sql/ 디렉토리 내의 data.sql 파일에 작성해야 합니다.
• 문자열에는 큰따옴표가 아닌 작은따옴표를 사용해야 합니다 ('chaine' vs "chaine"). 이는 PostgreSQL과의 호환성을 위한 규칙입니다.
• SQL 파일은 MySQL 데이터베이스에서 작동해야 하며, 다른 데이터베이스의 파일은 유지 관리되지 않지만 해당 데이터베이스 드라이버에 의해 즉석에서 읽고 변환됩니다.
- SQL 파일 테스트:
• SQL 파일이 준비되면, 돌리바르 모듈 설정 페이지에서 해당 모듈을 비활성화한 후 데이터베이스에서 해당 테이블을 삭제 (존재하는 경우)하고 다시 활성화하여 테이블이 올바르게 생성되는지 테스트할 수 있습니다.
• 테이블이 생성되지 않으면 스크립트를 직접 실행하거나 돌리바르 로그를 확인하여 오류를 찾아야 합니다.
- PHP DAO 클래스 생성:
• DAO (Data Access Object) PHP 파일은 ModuleBuilder를 사용하여 객체를 생성한 후 자동으로 생성됩니다.
• 수동으로 생성할 수도 있지만, ModuleBuilder 사용이 권장됩니다. 예제 파일은 htdocs/modulebuilder/templates/class/myobject.class.php에서 찾을 수 있습니다.
• DAO 클래스에는 테이블 행의 삽입(Create), 조회(Read), 업데이트(Update), 삭제(Delete)를 수행하는 CRUD 메소드가 이미 포함되어 있습니다.
• 생성된 DAO 클래스 파일을 편집하여 올바른 모듈 이름과 테이블 이름을 사용하도록 수정하고, 모듈의 class 하위 디렉토리에 저장해야 합니다.
- 다른 모듈 개발과 연관성
• PHP 화면 생성 및 수정: 생성된 SQL 테이블의 데이터를 보여주거나 편집하기 위한 새로운 PHP 화면을 만들거나 기존 화면에 필드를 추가할 수 있습니다. 이때 DAO 클래스의 메소드를 사용하여 데이터베이스에 접근하게 됩니다.
• 탭 관리: 새로운 데이터 관련 정보를 기존 돌리바르 객체 (예: 송장, 제품) 화면에 새로운 탭으로 추가할 수 있습니다. 이 탭의 내용은 DAO 클래스를 통해 데이터베이스에서 가져올 수 있습니다.
• 설정 페이지 추가: 모듈의 데이터 관련 설정을 사용자가 정의할 수 있는 설정 페이지를 만들 수 있습니다.
• 메뉴 항목 정의: 새로운 데이터 관리 기능을 접근할 수 있는 메뉴 항목을 추가할 수 있습니다.
• 권한 정의: 데이터 접근 및 조작에 대한 권한을 정의하여 보안을 강화할 수 있습니다.
• 내보내기 정의: 모듈에서 관리하는 데이터를 내보낼 수 있는 기능을 추가할 수 있습니다.
- 탭 관리
- PHP 화면 생성 또는 수정
- 자체 설명 페이지 추가
- 메뉴 항목 정의
- 자체 권한 추가
- 자체 박스 정의
- 자체 내보내기 정의
- CSS 스타일 정의
- Javascript 함수 추가
- 이벤트에 코드 실행
- hook 위치에 코드 삽입
- 문서 템플릿 추가
- 스킨 추가
모듈 생성도구
모듈 생성 도구 (Module Builder) 는 돌리바 ERP CRM 모듈 개발 과정을 용이하게 함
모듈 생성 도구의 역할 및 중요성:
• 주요 페이지 생성 간소화: 모듈 개발자는 모듈 생성 도구를 활용하여 모듈의 기본적인 페이지 구조를 더 쉽게 만들 수 있습니다. 이는 개발 시간을 단축하고 초기 개발 단계를 빠르게 진행할 수 있도록 돕습니다.
• 모듈 설명자 생성 지원: 과거에는 모듈 설명자 파일을 수동으로 생성하고 편집해야 했지만, 모듈 생성 도구가 도입되면서 이 과정을 자동화하거나 사용자 친화적인 인터페이스를 통해 관리할 수 있게 되었습니다. 모듈 설명자는 돌리바 시스템이 새로운 모듈을 인식하고 작동하는 데 필수적인 파일이므로, 이 도구의 존재는 모듈 개발의 첫 번째 중요한 단계를 더 쉽게 만듭니다.
• SQL 구조 및 DAO 클래스 자동 생성: 모듈에서 자체 데이터를 관리해야 하는 경우, 모듈 생성 도구를 사용하면 데이터베이스 테이블을 정의하는 SQL 파일과 해당 테이블에 접근하고 조작하는 PHP DAO 클래스를 자동으로 생성할 수 있습니다. 특히 DAO 클래스 생성은 CRUD (Create, Read, Update, Delete) 메소드를 포함하는 복잡한 작업일 수 있지만, 모듈 생성 도구를 통해 몇 번의 클릭만으로 자동화할 수 있어 개발 편의성을 크게 향상시킵니다.
• 기본 화면 템플릿 제공: 새로운 PHP 화면을 개발해야 할 때, 모듈 생성 도구는 기본적인 뼈대 코드 (skeleton templates)를 제공하여 개발자가 이를 기반으로 실제 화면 로직을 구현하는 데 집중할 수 있도록 돕습니다. 예시 템플릿 파일 (modulebuilder/myobject_page.php)을 활용하여 초기 화면 개발의 부담을 줄일 수 있습니다.
• 개발 편의성 및 효율성 증대: 전반적으로 모듈 생성 도구는 반복적이고 기술적인 작업을 자동화하거나 간소화하여 개발자가 모듈의 핵심 기능 구현에 더 많은 시간과 노력을 집중할 수 있도록 지원합니다. 이는 모듈 개발 과정을 더욱 효율적이고 사용자 친화적으로 만들어줍니다.
모듈 외부 템플릿
GIthub 활용에 대한 내용이다.
Github를 이용하여 개발할 경우, 모듈 빌더와 비슷한 내용과 과정을 거치고, 업데이트된 예제 코드를 사용할 수 있다.
모듈 설명자 생성
모듈 설명자는 마치, 내 것인데, 남들이 더 많이 사용하는 이름과 같은 것이다.
Dolibarr와 이것의 모듈 들이 신규로 생성되는 모듈이 어떤 것인지 알고 사용할 수 있도록 설명하는 내용이다.
- 모듈 설명자 파일의 중요성:
- 모듈 식별 및 활성화: 모듈 설명자 파일은 돌리바 시스템이 새로운 모듈을 인식하고 활성화할 수 있도록 하는 핵심적인 역할을 합니다. 이 파일에 정의된 정보 (모듈 이름, ID, 버전 등)를 바탕으로 돌리바는 모듈을 목록에 표시하고 사용자가 활성화/비활성화할 수 있도록 합니다.
- 모듈 기본 정보 정의:모듈 설명자 파일은 개발하는 모듈의 기본적인 속성을 정의합니다. 여기에는 모듈의 고유 ID (`$this->numero`), 버전 정보, 그리고 기타 생성자 변수들이 포함됩니다. 특히 모듈 ID는 다른 모듈과의 충돌을 피하기 위해 신중하게 선택해야 하며, 이미 예약된 ID 목록을 참고해야 합니다.
- 모듈 구성 요소 연결: 모듈 설명자 파일은 모듈이 제공하는 다양한 기능 (메뉴 항목, 권한, 설정 페이지, 박스, 내보내기 등)들을 돌리바 시스템에 연결하는 역할을 합니다. 예를 들어, `$this->menu` 배열을 통해 새로운 메뉴 항목을 정의하고, `$this->rights` 배열을 통해 새로운 권한을 정의합니다.
- 모듈 구조 정의: 모듈 설명자 파일은 모듈의 기본적인 구조를 나타내며, 관련 파일들이 어느 디렉토리에 위치하는지를 시스템에 알려줍니다. 예를 들어, CSS 파일 경로는 `$this->module_parts` 배열을 통해 정의됩니다.
- 모듈 설명자 파일 생성 방법:
- 수동 생성: 과거에는 개발자가 직접 `modMyModule.class.php` 파일을 생성하고 필요한 변수들을 수동으로 수정해야 했습니다.
* `/htdocs/custom/` *mymodule* `/core/modules` (외부 모듈) 또는 `/htdocs/` *mymodule* `/core/modules` (코어 모듈) 디렉토리를 생성합니다. * `htdocs/modulebuilder/template` 디렉토리의 `modMyModule.class.php` 파일을 생성한 디렉토리로 복사하고, 모듈의 목적에 맞게 파일명을 변경합니다 (예: `modNewName.class.php`). 파일명은 반드시 `mod`로 시작하고 `.class.php`로 끝나야 합니다. * 복사한 파일의 내용을 수정하여 모듈의 목적에 맞는 값으로 `"modMyModule"` 부분을 모두 변경합니다. 이 값은 항상 `mod`로 시작하고 영문자만 포함해야 합니다. * `$this->numero` 변수의 값을 모듈 ID로 변경하고, 충돌을 피하기 위해 예약된 ID 목록을 확인합니다. * 생성자의 다른 변수들을 모듈의 특성에 맞게 수정합니다.
- 모듈 빌더 사용:돌리바 버전 9.0부터는 표준 모듈로 제공되는 "모듈 빌더 (ModuleBuilder)" 모듈을 사용하여 모듈 설명자를 생성하는 것이 권장됩니다
* 모듈 목록에서 "모듈 빌더" 모듈을 활성화한 후, 화면 오른쪽 상단의 "벌레" 이미지를 클릭하여 접근할 수 있습니다. * 모듈 빌더를 사용하면 사용자 인터페이스를 통해 모듈 설명자의 다양한 속성을 설정하고 자동으로 파일을 생성할 수 있습니다.
- 모듈 설명자 파일 테스트:
모듈 설명자 파일을 생성하거나 수정한 후에는 돌리바 시스템에서 제대로 인식되는지 테스트해야 합니다.
- 돌리바에 접속하여 설정 -> 모듈 페이지로 이동합니다. `$this->version` 속성을 설정했다면, 새로운 모듈이 목록에 표시되고 활성화/비활성화 옵션이 나타나야 합니다.
- `$this->version` 속성을 `"develop"` 또는 `"experimental"`로 설정한 경우, **설정 -> 기타 설정** 페이지에서 `MAIN_FEATURES_LEVEL`을 적절한 값 (1 또는 2)으로 설정해야 모듈이 표시됩니다.
- 모듈 개발의 더 큰 맥락에서 모듈 설명자:
모듈 설명자 파일은 모듈 개발의 시작점이며, 이후의 모든 개발 작업의 기반이 됩니다. 이 파일이 올바르게 정의되지 않으면 돌리바 시스템은 개발된 모듈을 제대로 인식하거나 작동시킬 수 없습니다.
- 이전에 논의했던 모듈 생성 도구 (Module Builder) 는 이러한 모듈 설명자 파일 생성을 자동화하거나 간소화하여 개발 편의성을 크게 향상시킵니다.
- 또한 GitHub Dolibarr Module Modèle과 같은 외부 모듈 템플릿은 미리 구성된 모듈 설명자 파일의 예시를 제공하여 개발자가 이를 참고하고 자신의 모듈에 맞게 수정하는 과정을 용이하게 합니다.
모듈 설명자 파일을 통해 모듈의 기본적인 정보와 시스템 내에서의 역할을 정의하고, 이후 개발될 다양한 기능들을 돌리바와 연결할 수 있게 됩니다.
모듈 파일 경로 구조
모듈 파일 구성 내용
- • mymodule/: 모듈의 루트 디렉토리로서, 다른 모든 하위 디렉토리를 포함합니다. PHP 페이지 및 기타 사용자 정의 하위 디렉토리를 포함할 수 있습니다. 메타패키지 모듈의 경우 metapackage.conf 파일을 이 디렉토리에 위치시켜야 합니다.
- • mymodule/build/: 컴파일 또는 패키지 빌드와 관련된 개발 파일을 저장하는 데 사용됩니다.
- • mymodule/core/triggers/: 모듈에서 제공하는 트리거 관련 파일을 포함합니다.
- • mymodule/admin/: 모듈의 설정 페이지 관련 PHP 파일을 저장합니다.
- • mymodule/class/: 모듈에서 사용되는 PHP 클래스 파일을 포함합니다.
- • mymodule/css/: 모듈의 CSS 스타일 시트 파일을 저장합니다.
- • mymodule/js/: 모듈의 자바스크립트 파일을 저장하여 새로운 기능을 추가할 수 있습니다.
- • mymodule/docs/: 모듈의 문서 및 라이선스 파일을 제공합니다.
- • mymodule/img/: 모듈에서 사용되는 이미지 파일을 저장합니다.
- • mymodule/langs/xx_XX/: 언어 파일을 저장합니다. 최소한 en_US 언어 파일을 포함하는 것이 좋습니다.
- • mymodule/lib/: 모듈에서 사용되는 라이브러리 파일을 포함합니다.
- • mymodule/scripts/: 명령줄 도구 또는 스크립트 파일을 제공합니다. PHP 스크립트는 #!/usr/bin/env php로 시작해야 합니다.
- • mymodule/sql/: 모듈에서 새로운 테이블 또는 인덱스를 추가하는 SQL 파일을 저장합니다. 데이터 관리용 data.sql 파일도 이 디렉토리에 위치합니다.
- • mymodule/theme/mytheme/: 모듈 자체의 테마/스킨 파일을 제공하는 경우 사용됩니다.
- • mymodule/core/boxes/: 홈페이지에 표시할 새로운 박스 관련 파일을 저장합니다.
- • mymodule/core/tpl/: 모듈에서 기존 템플릿 파일(.tpl)을 덮어쓰기 위한 파일을 저장합니다.
DB, SQL
SQL 테이블 생성의 필요성:
- • 모듈 자체 데이터 관리: 돌리바의 표준 버전에서 제공하지 않는 고유한 데이터를 관리해야 하는 경우, 해당 데이터를 저장하기 위한 SQL 테이블을 정의해야 합니다.
SQL 파일 생성 방법:
- • SQL 디렉토리: 모듈의 SQL 테이블 생성 및 데이터 로딩 스크립트는 모듈 디렉토리 내의 sql 하위 디렉토리 ("mymodule/sql")에 저장됩니다. 모듈 빌더를 사용하는 경우, 새로운 객체를 생성할 때 이 디렉토리와 SQL 파일이 자동으로 생성될 수 있습니다.
- • 파일 명명 규칙: 테이블 생성 명령이 담긴 파일은 테이블당 하나의 llx_mytable.sql 형식으로 이름을 지정하는 것이 원칙입니다. 필요에 따라 인덱스 생성을 위한 llx_mytable.key.sql 파일을 추가할 수 있습니다. 기존 파일의 예시는 install/mysql/tables 디렉토리에서 확인할 수 있습니다.
- • 데이터 파일: 초기 데이터 추가, 수정 또는 삭제를 위한 SQL 명령은 mymodule/sql/ 디렉토리 내의 data.sql 파일에 포함해야 합니다.
- • 중요 규칙:
- ◦ SQL 필드의 권장 타입과 이름은 Language_and_development_rules#Table_and_fields_structures 페이지를 참고해야 합니다.
- ◦ 문자열에는 큰따옴표 대신 작은따옴표를 사용해야 합니다 (예: 'chaine', "chaine"` 아님). 큰따옴표는 PostgreSQL에서 특정 의미를 가집니다.
- ◦ SQL 파일은 MySQL 데이터베이스에서 작동해야 합니다. 다른 데이터베이스 (PostgreSQL 등)의 파일은 유지 관리되지 않지만, 해당 데이터베이스 드라이버에 의해 즉석에서 읽고 변환됩니다.
- • 테이블 로딩: 모듈 설명자 파일의 init 함수 내에서 $this->_load_tables('/mymodule/sql/'); 라인이 주석 처리되어 있지 않은지 확인해야 모듈 활성화 시 SQL 파일이 실행되어 테이블이 생성됩니다.
SQL 파일 테스트:
- • SQL 파일이 준비되면, 돌리바 모듈 설정 페이지에서 해당 모듈을 비활성화했다가 다시 활성화하여 SQL 스크립트가 제대로 실행되는지 테스트할 수 있습니다. 모듈 활성화 시 테이블이 다시 생성되어야 합니다. 그렇지 않은 경우, 스크립트를 직접 실행하거나 돌리바 로그를 확인해야 합니다.
PHP DAO 클래스 생성:
- • 목적: PHP DAO 클래스는 모듈의 자체 데이터를 관리하기 위한 CRUD (Create, Read, Update, Delete) 작업을 수행하는 메서드를 제공합니다.
- • 생성 방법:
- ◦ 모듈 빌더 권장: 모듈 빌더에서 객체를 생성하면 DAO PHP 파일이 자동으로 생성됩니다. 이는 가장 권장되는 방법입니다.
- ◦ 수동 생성 (선택 사항): 기존 객체 클래스를 복사하여 수동으로 생성할 수도 있습니다. 예시는 htdocs/modulebuilder/templates/class/myobject.class.php에서 찾을 수 있습니다. 이 경우, 클래스 파일 내에서 정확한 모듈 이름과 테이블 이름을 사용하도록 수정하고, 모듈의 class 하위 디렉토리에 저장해야 합니다.
- • CRUD 메서드: 생성된 DAO 클래스에는 테이블 행의 삽입 (insert), 조회 (fetch), 업데이트 (update), 삭제 (delete)를 위한 기본적인 CRUD 메서드가 이미 포함되어 있습니다.
돌리바 ERP CRM 모듈 개발의 더 큰 맥락에서 SQL 테이블 및 PHP DAO 클래스의 중요성:
- • 데이터 관리의 핵심: 모듈이 자체 데이터를 효율적이고 안전하게 관리하기 위한 핵심적인 구성 요소입니다. SQL 테이블은 데이터를 영구적으로 저장하는 역할을 하며, PHP DAO 클래스는 이 데이터에 접근하고 조작하는 인터페이스를 제공합니다.
- • 모듈 기능 확장: 표준 돌리바 기능 외에 새로운 데이터 구조와 기능을 추가할 수 있도록 합니다. 예를 들어, 특정 비즈니스 로직에 필요한 추가 정보를 저장하고 관리하는 데 사용될 수 있습니다.
- • 모듈 독립성 및 재사용성: DAO 패턴을 사용하면 데이터 접근 로직이 비즈니스 로직에서 분리되어 코드의 유지보수성과 재사용성을 향상시킵니다. 데이터베이스 구조가 변경되더라도 DAO 클래스만 수정하면 되므로, 전체 코드에 미치는 영향을 최소화할 수 있습니다.
- • 모듈 빌더 활용: 돌리바의 모듈 빌더는 SQL 테이블 설계와 기본적인 DAO 클래스 생성을 자동화하여 개발 과정을 더욱 효율적으로 만들어 줍니다.
- • 데이터베이스 상호 작용: DAO 클래스를 사용하지 않고 직접 데이터베이스에 접근해야 하는 경우 (예: 복잡한 JOIN 또는 필터링), 제공된 출처의 예시처럼 $db 객체의 query, fetch_object 등의 메서드를 사용하여 SQL 쿼리를 실행하고 결과를 처리할 수 있습니다. 하지만 이러한 직접적인 데이터베이스 접근은 DAO 클래스를 사용하는 방식보다 유지보수성이 낮아질 수 있습니다.