페이지 4: 뷰(View) 작성 및 데이터 전달

4. 뷰(View) 작성 및 데이터 전달

View는 사용자 인터페이스를 담당하며, 컨트롤러가 전달한 데이터를 표시합니다. PHP 코드를 최소화하여 가독성을 높여야 합니다.

4.1. 뷰 파일 작성 (app/Views)

app/Views/product_list.php 파일을 생성하여 HTML 마크업과 PHP를 혼합하여 데이터를 출력합니다.

<!-- app/Views/product_list.php -->
<h1>상품 목록</h1>
<?php foreach ($products as $product): ?>
    <div>
        <h3><?= esc($product['name']) ?></h3>
        <p>가격: <?= esc($product['price']) ?>원</p>
    </div>
<?php endforeach ?>

4.2. 컨트롤러에서 뷰로 데이터 전달

컨트롤러에서 Model을 통해 데이터를 가져온 후, 배열 형태로 View 함수에 전달합니다.

// app/Controllers/Products.php (일부 수정)
public function list()
{
    $model = new \App\Models\ProductModel();
    $data['products'] = $model->getAllProducts();
    
    // View에 $data 배열을 전달
    return view('product_list', $data); 
}

뷰 파일 내부에서는 전달받은 데이터를 PHP 변수(예: $products)로 직접 사용할 수 있습니다.