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();
?>
'PHP' 카테고리의 다른 글
PHP에서 JSONP 출력하기 (0) | 2013.05.12 |
---|