Files
jongryangje/docs/개발 규칙/02-코딩컨벤션.md
2026-04-08 00:23:55 +09:00

2.2 KiB

코딩 컨벤션 (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와 동일한 코드 스타일로 유지된다.