IMG-LOGO
공지사항 :

PHP Yii2

lmkfox - 2025-05-08 06:54:36 48 Views 0 Comment

PHP Yii2 설치부터 사용법까지 한눈에 보기

빠른 개발과 강력한 구조를 동시에 원하는 PHP 개발자라면 Yii2 프레임워크는 매우 유용한 선택입니다. 특히 CRUD 기반의 백엔드 시스템, 대시보드, 관리자 페이지 개발에 최적화되어 있습니다. 이 글에서는 Yii2의 설치부터 기초적인 사용법까지 단계별로 알아봅니다.


1. Yii2 프레임워크란?

Yii2는 **Yes, it is!**라는 슬로건을 가진 PHP의 대표적인 고성능 프레임워크입니다. 다음과 같은 특징을 갖고 있습니다:

  • MVC 기반 구조

  • Gii 코드 생성 도구 제공

  • 고성능 ORM (ActiveRecord)

  • RBAC, 캐싱, 이벤트 기반 구조 지원

  • RESTful API 빠른 구축 가능


2. 설치 방법

Yii2는 두 가지 기본 프로젝트 템플릿을 제공합니다.

  • Basic Template: 단순한 웹 애플리케이션용

  • Advanced Template: 백엔드/프론트엔드 분리 및 사용자 인증 포함

Composer로 설치하기 (Basic Template)

composer create-project --prefer-dist yiisoft/yii2-app-basic basic

설치가 완료되면 basic 폴더가 생성됩니다.

Composer로 설치하기 (Advanced Template)

composer create-project --prefer-dist yiisoft/yii2-app-advanced advanced
cd advanced
php init

설치 후 php init 명령어로 개발(dev) 또는 프로덕션(prod) 환경을 선택합니다.


3. 개발 서버 실행

기본 내장 서버를 통해 바로 확인할 수 있습니다.

php yii serve

접속 주소: http://localhost:8080

혹은 직접 web 디렉토리를 웹서버(Apache/Nginx) 루트로 지정해도 됩니다.


4. 데이터베이스 연결 설정

config/db.php (Basic) 또는 common/config/main-local.php (Advanced) 파일을 열어 DB 정보를 설정합니다.

return [
    'class' => 'yii\db\Connection',
    'dsn' => 'mysql:host=localhost;dbname=mydb',
    'username' => 'root',
    'password' => '',
    'charset' => 'utf8',
];

설정 후 DB 연결이 정상적으로 작동하는지 확인할 수 있습니다.


5. Gii를 활용한 CRUD 생성

Gii는 Yii2가 제공하는 웹 기반 코드 생성기입니다. 매우 편리하게 컨트롤러, 모델, 뷰를 생성할 수 있습니다.

Gii 활성화

config/web.php에서 Gii 모듈을 활성화합니다.

'modules' => [
    'gii' => [
        'class' => 'yii\gii\Module',
    ],
],

접속 주소: http://localhost:8080/index.php?r=gii

사용 방법

  1. Model 생성 → 데이터베이스 테이블 기반으로 모델 자동 생성

  2. CRUD 생성 → 모델명을 입력하면 Controller + View 자동 생성


6. 라우팅과 URL 설정

기본적으로 index.php?r=site/index 형식의 URL을 사용하지만, pretty URL을 활성화할 수 있습니다.

설정 방법 (

config/web.php

)

'urlManager' => [
    'enablePrettyUrl' => true,
    'showScriptName' => false,
    'rules' => [],
],

Apache의 경우 .htaccess도 함께 설정해줘야 합니다.

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php


7. 기본 컨트롤러/액션 작성

컨트롤러 파일 예시:

// controllers/SiteController.php
namespace app\controllers;

use yii\web\Controller;

class SiteController extends Controller
{
    public function actionHello()
    {
        return $this->render('hello');
    }
}

뷰 파일 생성:

views/site/hello.php

해당 뷰에서 HTML 또는 PHP 코드를 작성하면 됩니다.


8. RESTful API 빠르게 구축하기

모델 기반으로 API를 만들 수도 있습니다.

use yii\rest\ActiveController;

class PostController extends ActiveController
{
    public $modelClass = 'app\models\Post';
}

기본적인 CRUD API가 /post 엔드포인트에 자동 생성됩니다.



댓글