minstudio

Twig 템플릿 엔진으로 View 만들기

PHP 파일 안에 HTML 태그를 섞어 쓰면 코드가 매우 지저분해집니다 (스파게티 코드). Twig 템플릿 엔진을 사용하면 PHP 로직(데이터 추출)과 HTML(화면 그리기)을 깔끔하게 분리할 수 있습니다.

🧠
PHP (데이터)
['name' => '민수']
+
🎨
Twig (껍데기)
<h1>안녕, {{ name }}!</h1>
=
완성된 HTML
안녕, 민수!
bash
// composer require slim/twig-view

use Slim\Views\Twig;
use Slim\Views\TwigMiddleware;

// 1. Twig 설정 (템플릿 파일이 있는 폴더 지정)
$twig = Twig::create(__DIR__ . '/../templates', ['cache' => false]);
$app->add(TwigMiddleware::create($app, $twig));

$app->get('/hello/{name}', function ($request, $response, $args) {
    // 2. View 모듈 꺼내오기
    $view = Twig::fromRequest($request);
    
    // 3. 'hello.twig' 파일에 데이터를 넘겨주고 렌더링(합성) 요청
    return $view->render($response, 'hello.twig', [
        'name' => $args['name']
    ]);
});

/* --- templates/hello.twig 파일 내용 ---
<!DOCTYPE html>
<html>
<head><title>인사</title></head>
<body>
    <!-- 중괄호 두개 {{ }} 로 PHP에서 넘겨준 데이터를 찍어냅니다 -->
    <h1>반갑습니다, {{ name }}님!</h1>
</body>
</html>
*/
Twig 템플릿 엔진으로 View 만들기 | Minstudio