docs: add project docs and test updates
This commit is contained in:
67
docs/개발 규칙/05-View정리구조.md
Normal file
67
docs/개발 규칙/05-View정리구조.md
Normal file
@@ -0,0 +1,67 @@
|
||||
# View 정리 구조 (View Organization)
|
||||
|
||||
> Auth·Home·bag 뷰 기준. 디렉터리·파일명·공통 요소 규칙.
|
||||
|
||||
## 1. 디렉터리 구조
|
||||
|
||||
- **컨트롤러와 1:1 대응**하는 폴더. 컨트롤러명 소문자 = 뷰 폴더명.
|
||||
- **한글/공백 없음**. 소문자·언더스코어 사용.
|
||||
|
||||
```
|
||||
app/Views/
|
||||
├── auth/ # Auth 컨트롤러
|
||||
│ ├── login.php
|
||||
│ └── register.php
|
||||
├── home/ # Home 컨트롤러
|
||||
│ └── dashboard.php
|
||||
├── bag/ # 업무 화면(뷰만 있을 수 있음)
|
||||
│ └── daily_inventory.php
|
||||
├── admin/ # 관리자단(선택)
|
||||
│ ├── user/
|
||||
│ │ ├── index.php
|
||||
│ │ ├── create.php
|
||||
│ │ └── edit.php
|
||||
│ └── ...
|
||||
└── errors/ # CI4 기본 에러 뷰
|
||||
```
|
||||
|
||||
## 2. 파일명 규칙
|
||||
|
||||
- **소문자**, 단어 구분은 **언더스코어** 가능. 예: `login.php`, `register.php`, `daily_inventory.php`.
|
||||
- **목록**: `index.php`. **폼**: `create.php`(등록), `edit.php`(수정). **기능별**: `login.php`, `login_history.php` 등.
|
||||
|
||||
## 3. 뷰 호출 (컨트롤러)
|
||||
|
||||
- `return view('auth/login');` — 확장자 없음, 경로는 `Views/` 기준 상대 경로.
|
||||
- 서브폴더: `view('admin/user/create')`.
|
||||
|
||||
## 4. 공통 요소 (필수·권장)
|
||||
|
||||
- **출력 이스케이프**: `<?= esc($변수) ?>`, `<?= esc(session()->getFlashdata('success')) ?>`.
|
||||
- **폼**: `action="<?= base_url('login') ?>"`, `method="POST"`, `<?= csrf_field() ?>`.
|
||||
- **입력값 복원**: `value="<?= esc(old('login_id')) ?>"`.
|
||||
- **플래시 메시지**: `success`, `error`, `errors` 표시.
|
||||
|
||||
```php
|
||||
<?php if (session()->getFlashdata('success')): ?>
|
||||
<div class="..."><?= esc(session()->getFlashdata('success')) ?></div>
|
||||
<?php endif; ?>
|
||||
<?php if (session()->getFlashdata('error')): ?> ... <?php endif; ?>
|
||||
<?php if (session()->getFlashdata('errors')): ?>
|
||||
<?php foreach (session()->getFlashdata('errors') as $error): ?>
|
||||
<p><?= esc($error) ?></p>
|
||||
<?php endforeach; ?>
|
||||
<?php endif; ?>
|
||||
```
|
||||
|
||||
## 5. 레이아웃 (선택)
|
||||
|
||||
- 공통 헤더·푸터가 있으면 레이아웃 뷰를 두고, 각 뷰는 본문만 포함. (현재 Auth·bag은 풀 페이지 HTML.)
|
||||
- 링크: `base_url()`, `base_url('logout')` 등으로 통일.
|
||||
|
||||
## 6. HTML 기본
|
||||
|
||||
- `lang="ko"`, `charset="utf-8"`, viewport 메타.
|
||||
- 제목: `<title>화면명 - 쓰레기봉투 물류시스템</title>` 형태 권장.
|
||||
|
||||
새 뷰 추가 시 `auth/login.php`, `auth/register.php`, `bag/daily_inventory.php` 구조를 참고해 같은 규칙으로 만든다.
|
||||
Reference in New Issue
Block a user