MVC 방식을 사용하여 작은 CMS를 작성하고 싶은데 컨트롤러, 모델, 뷰를 생성했는데 컨트롤러의 값을 뷰에 어떻게 쓰는지 모르겠습니다.
index.php
<code><?php require('View/testView.php'); require('Model/testModel.class.php'); require('Controller/testController.class.php'); $testController = new testController(); $testController->show(); ?> </code>로그인 후 복사로그인 후 복사testController.class.php
<code>class testController{ function show(){ $testModel = new testModel(); $data = $testModel->get(); return $data; } } </code>
testModel.class.php
<code>require('database.php'); get_connection(); class testModel{ function get(){ $sql = "SELECT * FROM db_problem"; $res = mysql_query($sql); return $res; } } </code>
testView.php
<code><html> <head> <meta charset="UTF-8"> <title>BUG列表</title> </head> <body> <table border="1px solid #bebebe" width="980px" cellpadding="1" cellspacing="0"> <tr> <th width="10%">ID</th> <th width="70%">问题</th> <th width="20%">提交时间</th> </tr> <tr style="text-align: center"> <td></td> <td></td> <td></td> </tr> </table> </body> </html> </code>
MVC 방식을 사용하여 작은 CMS를 작성하고 싶은데 컨트롤러, 모델, 뷰를 생성했는데 컨트롤러의 값을 뷰에 어떻게 쓰는지 모르겠습니다.
index.php
<code><?php require('View/testView.php'); require('Model/testModel.class.php'); require('Controller/testController.class.php'); $testController = new testController(); $testController->show(); ?> </code>로그인 후 복사로그인 후 복사testController.class.php
<code>class testController{ function show(){ $testModel = new testModel(); $data = $testModel->get(); return $data; } } </code>
testModel.class.php
<code>require('database.php'); get_connection(); class testModel{ function get(){ $sql = "SELECT * FROM db_problem"; $res = mysql_query($sql); return $res; } } </code>
testView.php
<code><html> <head> <meta charset="UTF-8"> <title>BUG列表</title> </head> <body> <table border="1px solid #bebebe" width="980px" cellpadding="1" cellspacing="0"> <tr> <th width="10%">ID</th> <th width="70%">问题</th> <th width="20%">提交时间</th> </tr> <tr style="text-align: center"> <td></td> <td></td> <td></td> </tr> </table> </body> </html> </code>
먼저 $this->display('test');
와 같이 컨트롤러에서 템플릿을 지정한 다음 표시 방법
더 복잡해지고 템플릿에 구문 설탕을 추가하려면 템플릿이 디스플레이에서 파일을 컴파일했는지 여부를 판단할 수 있습니다. 그렇지 않은 경우 컴파일을 수행합니다(기본적으로 {$test}를 $로 바꾸는 등의 일반적인 교체). this->test), 컴파일된 파일
을 포함합니다.이렇게 하면 컨트롤러의 변수를 직접 사용할 수 있습니다
이전에 간단한 mvc 프레임워크를 작성한 적이 있으니 핵심 내용은 158번째 줄 https://github.com/eyblog/mvc...
컨트롤러에서 템플릿의 변수와 값을 데이터에 저장합니다. File_get_content는 보기 파일의 내용을 읽습니다. 템플릿 변수 식별자는 {$user} 또는 { {user}}, 정규식 일치 및 수식으로 바꾸고 마지막으로 echo
class Controller {
public $templateData = [] //템플릿 파일의 데이터 매핑 테이블을 저장합니다
; 공개 함수 인덱스(){
<code> $this->assign($key,$value);</code>
}
공개 함수 할당($key,$value){
<code> $this->assign($key,$value);</code>
}
공개 함수 표시(){
<code> /*加载view文件内容 /*正则搜索替换 /*输出</code>
}
}