2.1 KiB
2.1 KiB
파일 분리 구조 (File Separation Structure)
Auth·Home·Member·MemberLog 기준. 컨트롤러/모델/설정 역할별 분리 규칙.
1. 컨트롤러 (Controllers)
- 위치:
app/Controllers/ - 네임스페이스:
App\Controllers또는 서브(예:App\Controllers\Admin). - 기준:
Auth.php— 로그인/로그아웃/회원가입 등 한 도메인당 한 컨트롤러. - 상속:
extends BaseController. - 역할: 요청 수신 → 유효성 → Model 호출 → view() 또는 redirect(). 비즈니스 로직은 Model·별도 클래스로 분리.
app/Controllers/
├── BaseController.php # 공통 상속
├── Auth.php # 로그인/로그아웃/회원가입
├── Home.php # 홈/대시보드
└── Admin/ # 관리자단(선택)
├── Dashboard.php
├── User.php
└── ...
2. 모델 (Models)
- 위치:
app/Models/ - 네임스페이스:
App\Models - 기준:
MemberModel.php,MemberLogModel.php— 테이블 1:1,$table,$primaryKey,$allowedFields정의. - 역할: DB 접근·조회/추가/수정/삭제. 컨트롤러는 Model 메서드만 호출.
app/Models/
├── MemberModel.php # member 테이블
└── MemberLogModel.php # member_log 테이블
3. 설정 (Config)
- 위치:
app/Config/ - 기준:
Routes.php,Roles.php— 라우트·역할 등 앱 전역 설정. - 역할: URL 라우팅, 역할 코드·한글명 매핑 등. 비즈니스 로직은 넣지 않는다.
app/Config/
├── Routes.php # 라우트 정의
├── Roles.php # mb_level 상수·levelNames
├── App.php
├── Database.php
└── ...
4. 라우트 규칙
- GET = 폼/목록, POST = 처리. 같은 URI를 GET/POST로 나누는 패턴 사용(예:
get('login'),post('login')). - 그룹 필요 시
$routes->group('admin', ['filter' => 'adminAuth'], function ($routes) { ... });형태.
새 기능 추가 시 위 구조에 맞춰 Controller/Model/Config를 분리하고, Auth·Member와 동일한 패턴을 따른다.