docs: add project docs and test updates
This commit is contained in:
42
docs/개발 규칙/02-코딩컨벤션.md
Normal file
42
docs/개발 규칙/02-코딩컨벤션.md
Normal file
@@ -0,0 +1,42 @@
|
||||
# 코딩 컨벤션 (Coding Convention)
|
||||
|
||||
> PHP 8.2+, CodeIgniter 4 기준. Auth·MemberModel·MemberLogModel 스타일을 따른다.
|
||||
|
||||
## 1. PHP 기본
|
||||
|
||||
- **네임스페이스**: `App\Controllers`, `App\Models`, `Config` 등 CI4 규칙 준수.
|
||||
- **클래스명**: PascalCase. 컨트롤러는 단수/역할명(`Auth`, `Home`). 모델은 `~Model` 접미사(`MemberModel`).
|
||||
- **메서드명**: camelCase. 동사+명사(`showLoginForm`, `findByLoginId`).
|
||||
- **상수**: 클래스 상수는 `UPPER_SNAKE_CASE` (`MB_STATE_NORMAL`, `LEVEL_SUPER_ADMIN`).
|
||||
- **private/protected**: 비공개 로직은 `private` 메서드로 분리(예: `buildLogData`, `insertMemberLog`).
|
||||
|
||||
## 2. 타입·공백
|
||||
|
||||
- 메서드 인자·반환 타입 선언 권장. 예: `function findByLoginId(string $mbId): ?object`, `function buildLogData(string $mbId, ?int $mbIdx): array`.
|
||||
- 연산자·쉼표 뒤 공백. `if (! $this->validate(...))` 처럼 `!` 뒤 공백.
|
||||
- 배열 키·값 정렬 시 화살표 정렬로 가독성 유지(선택).
|
||||
|
||||
## 3. 네이밍 규칙 요약
|
||||
|
||||
| 구분 | 규칙 | 예시 |
|
||||
|------|------|------|
|
||||
| 컨트롤러 | PascalCase, 단수/역할 | `Auth`, `Home`, `Admin\User` |
|
||||
| 메서드 | camelCase | `showLoginForm`, `login`, `create`, `store` |
|
||||
| 뷰 폴더 | 소문자, 컨트롤러 대응 | `auth/`, `home/`, `admin/user/` |
|
||||
| 뷰 파일 | 소문자, 언더스코어 가능 | `login.php`, `register.php`, `daily_inventory.php` |
|
||||
| 라우트 URI | 소문자, 케밥 또는 경로 | `login`, `logout`, `admin/users` |
|
||||
| 모델 | PascalCase + Model | `MemberModel`, `MemberLogModel` |
|
||||
| 테이블 | 소문자, 언더스코어 | `member`, `member_log` |
|
||||
| 테이블 PK | 테이블 약어_idx | `mb_idx`, `mll_idx` |
|
||||
| 테이블 컬럼 | 테이블 약어_컬럼명 | `mb_id`, `mb_name`, `mll_regdate` |
|
||||
|
||||
## 4. 주석
|
||||
|
||||
- 클래스 상단·복잡한 비즈니스 로직에 한글 주석 허용. 예: `/** mb_state: 1=정상, 2=정지, 0=탈퇴 */`.
|
||||
- PHPDoc: `@param`, `@return`, `@var` 등 필요 시 사용.
|
||||
|
||||
## 5. Config 참조
|
||||
|
||||
- 설정은 `config('Roles')`, `config('App')` 등으로 접근. `config('Roles')->getLevelName($level)` 형태 사용.
|
||||
|
||||
이 컨벤션을 지키면 Auth와 동일한 코드 스타일로 유지된다.
|
||||
Reference in New Issue
Block a user