Was ist ein MVC-Framework? So entwickeln Sie ein MVC-Framework in PHP (mit Code)

不言
Freigeben: 2023-04-03 12:14:01
Original
3080 Leute haben es durchsucht

Das mit PHP entwickelte MVC-Framework ist für PHP-Neulinge möglicherweise nicht in der Lage, seine Bedeutung zu verstehen, aber das spielt keine Rolle. Im heutigen Artikel werde ich ausführlich über mein Verständnis des MVC-Frameworks und dessen Vorgehensweise sprechen Entwickeln Sie das MVC-Framework mit der PHP-Methode.

Die Verwendung von MVC fügt dem Programm viele Datenbankoperationen hinzu, was die Leistung beeinträchtigt. Das hat mich wirklich überrascht. MVC ist nur ein Framework und hat nichts mit Datenbankoperationen zu tun. MVC bietet nur ein klares Programmierentwicklungsmodell. Solange Sie gut damit umgehen, ist es unmöglich, viele unnötige Datenbankoperationen durchzuführen. Wenn ein MVC es einem Programmierer ermöglicht, viel mehr Datenbankoperationen durchzuführen, ohne es zu wissen, handelt es sich definitiv nicht um eine gute MVC-Architektur. Ich denke, dass MVC nur ein einfaches Entwicklungsframework bereitstellen muss. Es ist nicht erforderlich, viele Bibliotheksklassen zu integrieren. Für Programmierer ist es am besten, Bibliotheksklassen zu verwenden.

Ich persönlich habe mich nicht eingehend mit der MVC-Theorie befasst. Durch Aufrufen der Modellmethode können Sie die entsprechenden Daten abrufen, aber der Programmierer muss sich nicht darum kümmern die Implementierungsdetails. In der tatsächlichen Entwicklung ist es wahrscheinlich, dass eine Datenbanktabelle einem Modell entspricht.

Zum Beispiel entspricht eine Benutzerinformationstabelle userinfo einem Modellbenutzer. Durch Aufrufen der add()-Methode des Modellbenutzers können Sie der Datenbank Daten hinzufügen Die Abfrage kann aktualisiert werden. Gleichzeitig sollte das Modell unabhängig vom spezifischen Datenbanktyp sein, unabhängig davon, ob Sie MySQL, Oracle oder SQL verwenden Server.

Gleichzeitig empfehle ich die Verwendung von ROR in der WEB-Entwicklung. Es ist so bequem und schnell, die SQL-Sprache für komplexe Abfragen mit mehreren Tabellen zu verwenden, und die Leistung ist besser. Wenn ein Programmierer nicht einmal über SQL-Kenntnisse verfügt, ist er meiner Meinung nach kein qualifizierter Programmierer. Daher stelle ich in meinem Modell eine Abfragemethode zur Implementierung einer direkten SQL-Abfrage bereit.

Das Folgende ist ein ungefähres Ergebnis der Entwicklung des MVC-Frameworks in PHP.

< ?   
class module{   
var $mysql;//数据库操作类,可以是mysql,oracle,sql等等   
var $tbname;//模型对应的表名称   
var $debug=false;//是否是调试模式   
function module($tbname,$db=&#39;&#39;){}//构造函数   
function _setDebug($debug=true){}
//开启或者关闭调试模式   
function add($row,$tbname=&#39;&#39;){}
//新增加一条记录   
function query($strsql){}//直接查询sql语句   
function count($where=&#39;&#39;,$tbname=&#39;&#39;){ }
//计数统计   
function select($where=&#39;&#39;,$tbname=&#39;&#39;){}
//查询   
function delete($where=&#39;&#39;,$tbname=&#39;&#39;){}
//删除满足条件的一个记录   
function update($set,$where,$tbname=&#39;&#39;){}
//更新指定记录   
function detail($where,$tbname=&#39;&#39;){}
//详细显示一条记录   
}   
?>
Nach dem Login kopieren

In diesem Modell verwende ich Arrays und Datenbankfelder zur Entsprechung. Im frühen PHPBEAN wurden Objekte zur Entsprechung verwendet. Aber später hatte ich das Gefühl, dass diese Methode zur Entwicklung von MVC-Modellen in PHP in PHP nicht gut war und viele unnötige Klassen hinzufügte. Es ist bequemer und besser, Arrays zu verwenden (Arrays in PHP sind tatsächlich eine gute Sache, viel besser als JAVA).

In der Demo unten habe ich die MySQL-Datenbank zur Demonstration verwendet und die Datenbankoperationsklasse wurde von einer meiner ursprünglichen Bibliotheksklassen geändert.

Nachfolgend wird die Verwendung der Demo im Detail erläutert. ^_^
Fügen Sie

< ?   
require_once(SITE_PATH.&#39;/libs/phpbean.class.php&#39;);   
require_once(SITE_PATH.&#39;/libs/mysql.class.php&#39;);   
$phpbean=new phpbean();   
global $phpbean;   
$mysql=new mysql("localhost","****","****","52site");   
$phpbean->register(&#39;db&#39;,$mysql);   
unset($mysql);   
?>
Nach dem Login kopieren

in die index.php des Originalpakets ein. Dieser PHP-Entwicklungs-MVC-Modellcode registriert hauptsächlich MYSQL im Registrar zwei Artikel, die ich übersetzt habe.
Erstellen Sie dann eine neue mysqlController.class.php-Datei mit dem folgenden Code:

< ?   
/**   
* MVC演示demo   
* 仅仅实现最基本的MVC功能,不包含安全处理,数据过滤,及其他优化措施。   
* @author:feifengxlq   
* @since:2007-1-24   
* @copyright http://www.php.cn/
*/   
class mysqlController   
{   
var $module;   
function mysqlController(){   
require_once(SITE_PATH.&#39;/libs/module.class.php&#39;);   
$this->module=new module(&#39;52site_siteinfo&#39;);//52site_siteinfo为表名称   
$this->module->query("set names &#39;gb2312&#39;");//如果是MYSQL5请加上这句   
}   
function indexAction(){   
print_r($this->module->select());//这样实现了读取数据   
}   
}   
?>
Nach dem Login kopieren

Das Obige dient zunächst dazu, dem Konstruktor des Controllers ein Modell hinzuzufügen. Rufen Sie dann die Modellmethode in indexAction auf, um die Daten anzuzeigen. Dies implementiert die einfachste Abfrageliste.

Verwandte Empfehlungen:

Erstellen Sie Ihr eigenes PHP-MVC-Framework

Verstehen Sie MVC in PHP?

Das obige ist der detaillierte Inhalt vonWas ist ein MVC-Framework? So entwickeln Sie ein MVC-Framework in PHP (mit Code). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!