Ich möchte ein kleines CMS mit der MVC-Methode schreiben. Ich habe einen Controller, ein Modell und eine Ansicht erstellt, weiß aber nicht, wie ich den Wert vom Controller in die Ansicht schreiben soll.
index.php
<code><?php require('View/testView.php'); require('Model/testModel.class.php'); require('Controller/testController.class.php'); $testController = new testController(); $testController->show(); ?> </code>Nach dem Login kopierenNach dem Login kopierentestController.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>
Ich möchte ein kleines CMS mit der MVC-Methode schreiben. Ich habe einen Controller, ein Modell und eine Ansicht erstellt, weiß aber nicht, wie ich den Wert vom Controller in die Ansicht schreiben soll.
index.php
<code><?php require('View/testView.php'); require('Model/testModel.class.php'); require('Controller/testController.class.php'); $testController = new testController(); $testController->show(); ?> </code>Nach dem Login kopierenNach dem Login kopierentestController.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>
Zuerst müssen Sie die Vorlage im Controller angeben, z. B. $this->display('test');
und dann die Vorlage in die Anzeigemethode
Wenn Sie es komplizierter machen und der Vorlage Syntaxzucker hinzufügen möchten, können Sie beurteilen, ob die Vorlage kompilierte Dateien in der Anzeige enthält. Wenn nicht, führen Sie eine Kompilierung durch (im Wesentlichen eine regelmäßige Ersetzung, z. B. Ersetzen von {$test} durch $ this- >test) und fügen Sie dann die kompilierte Datei ein
Auf diese Weise können Sie die Variablen des Controllers direkt nutzen
Ich habe bereits ein einfaches MVC-Framework geschrieben. Der Kerninhalt befindet sich in Zeile 158 https://github.com/eyblog/mvc...
Speichern Sie im Controller die Variablen und Werte in der Vorlage in den Daten. File_get_content liest den Inhalt der Ansichtsdatei. Der Vorlagenvariablenbezeichner kann beliebig sein, z. B. {$user} oder {. {user}} und dann regulärer Ausdruck Abgleichen und durch die Formel ersetzen und schließlich echo
class Controller {
public $templateData = [] //Speichern Sie die Datenzuordnungstabelle der Vorlagendatei
öffentliche Funktion index(){
<code> $this->assign($key,$value);</code>
}
öffentliche Funktion „assign($key,$value)“{
<code> $this->assign($key,$value);</code>
}
öffentliche Funktion display(){
<code> /*加载view文件内容 /*正则搜索替换 /*输出</code>
}
}