PHP

PHP 디자인 패턴 MVC 사용방법

정채윤 2013. 7. 7. 14:34


PHP에서 디자인 패턴 MVC 사용하 






1. 개요

 


MVC 모델은 객체지향 설계방법이다. 각각의 컴포넌트에 대한 역할을 기능에 맞게 독립적으로 나눔으로써 차후에 최소 비용으로 유연하게 대처할 수 있도록 한다.

 

C 나 JAVA와 같이 컴파일 방식으로 결과물을 만드는 프로그래밍 언어와 달리 PHP는 인터프리터 방식의 기계어로 변환되어 실행되기 때문에 속도저하가 있을 수 있다고 한다. 하지만 이 글의 목적은 PHP에서도 클래스를 사용할 수 있고, MVC패턴을 구현하는 방법을 알아보는데 있다.

 

 


2. 구현

 


//---- mvc.php 파일

<?php

//모델 클래스는 데이터와 로직을 관리한다.

class Model {

public $text;

 

public function __construct() {

$this->text = 'Hello world!';

}

}

 

//버튼이 있는 View 클래스 생성

class View{

private $model;

private $controller;

 

public function __construct( Controller $controller, Model $model ) {

$this->controller = $controller;

$this->model = $model;

}

public function output() {

return '<a href="mvc.php?action=textClicked">' . $this->model->text . '</a>';

}

}

 

//컨트롤 클래스는 뷰에서 넘겨받은 콜백인자를 이용해서 컨트롤러 내부 메서드를 호출

class Controller {

private $model;

 

public function __construct( Model $model ) {

$this->model = $model;

}

public function textClicked() {

$this->model->text = 'Text Updated';

}

}

 

//사용방법

$model = new Mode();

$controller = new Controller($model);

$view = new View($controller, $model );

 

//뷰에서 출력된 링크를 클릭하게 되면 넘어온 action 값을 이용해 컨트롤 메서드를 호출

if(isset($_GET['action'])) $controller->{$_GET[action]}();

echo $view->output();

?>