Heim Backend-Entwicklung PHP-Tutorial Beispielcode für MVC-Musteranwendungsfähigkeiten in PHP

Beispielcode für MVC-Musteranwendungsfähigkeiten in PHP

Jul 12, 2017 pm 02:28 PM
php 技巧 示例

MVC-Muster ist die Abkürzung für „Model-View-Controller“ und die chinesische Übersetzung lautet „Model-View-Controller“. MVC-Anwendungen bestehen immer aus diesen drei Teilen. Ein Ereignis (Ereignis) veranlasst den Controller, das Modell oder die Ansicht oder beide gleichzeitig zu ändern. Solange der Controller die Daten oder Eigenschaften der Modelle ändert, werden alle abhängigen Ansichten automatisch aktualisiert. Ebenso ruft die Ansicht jedes Mal, wenn der Controller die Ansicht ändert, Daten vom zugrunde liegenden Modell ab, um sich selbst zu aktualisieren. Das MVC-Muster wurde erstmals von der Smalltalk-Sprachforschungsgruppe vorgeschlagen und wird in Benutzerinteraktionsanwendungen verwendet. Es gibt viele Ähnlichkeiten zwischen der Smalltalk-Sprache und der Java-Sprache. Beide sind objektorientierte Sprachen. Natürlich hat SUN das MVC-Muster als Architekturmuster für die Entwicklung von Webanwendungen im Beispiel „Petstore“ empfohlen Anwendung. Das MVC-Muster ist ein Architekturmuster, das tatsächlich die Zusammenarbeit anderer Muster erfordert. Im J2EE-Modusverzeichnis wird normalerweise der Service-to-Worker-Modus implementiert, und der Service-to-Worker-Modus kann aus dem zentralisierten Controller-Modus, dem Dispatcher-Modus und dem Page Helper-Modus bestehen. Struts implementiert nur die View- und Controller-Teile von MVC. Der Model-Teil muss von Entwicklern selbst implementiert werden, damit Entwickler Model auf das Struts-Framework anwenden können. Es verwaltet seinen eigenen Status und verwaltet alle Vorgänge am Status. Das System selbst weiß nicht, wer seine eigene Ansicht und den Controller verwendet ist auch für die Benachrichtigung der entsprechenden Ansicht verantwortlich.

Ansicht stellt eine visuelle Darstellung der im Verwaltungsmodell enthaltenen Daten dar. Ein Modell kann mehr als eine Ansicht haben, aber das ist in Swing selten der Fall.

Der Controller verwaltet die Steuerung der Interaktion zwischen dem Modell und dem Benutzer. Es bietet einige Methoden zum Umgang mit Situationen, in denen sich der Zustand des Modells ändert.

Verwendung des MVC-Musters in PHP
Lassen Sie mich zunächst ein Beispiel geben:
Eine einfacheArtikelanzeigeSystem
In einem einfachen Zeitraum gehen wir davon aus Dieses Artikelsystem dient nur dem Lesen, was bedeutet, dass in diesem Beispiel nicht die Veröffentlichung des Artikels erfolgt, der jetzt beginnt.
Da es sich nur um das Lesen der Datenbank handelt, habe ich zwei Schnittstellen definiert

Interface DataOperation 
{ 
   public function select($info); 
   public function selectNum($info); 
}
Nach dem Login kopieren

Die obige Schnittstelle definiert die Schnittstelle zum Lesen von Daten, und die Auswahlmethode gibt das Erforderliche zurück Artikel. Die Methode selectNum gibt die Gesamtzahl der Artikel zurück, die für die Seitenanzeige verwendet wird. $info ist ein Array zum Speichern von Abfragebedingungen

Interface DataSource 
{ 
   public static function getInstance(); 
}
Nach dem Login kopieren

Hier gehen wir davon aus, dass wir eine Datenbank betreiben, DataSource eine Schnittstelle definiert und alle Instanzklassen, die diese Schnittstelle implementieren, ein statisches Objekt erhalten

Interface Controller 
{ 
   public function pop(); 
   public function push(); 
   public function execute(); 
} 
Interface View 
{ 
   public function display(); 
}
Nach dem Login kopieren

Okay, lass es uns implementieren
Im Folgenden wird eine Klasse zum Implementieren der DataSource-Schnittstelle definiert. Diese Klasse verwendet das Einzelfallmuster

class DataBaseSource implements DataSource 
{ 
   public static $instance = null; 
   public static function getInstance() 
   { 
       if(self::$instance == null) 
       { 
           self::$instance == new PDO("mysql:host=localhost;dbname=article","root","123456"); 
       } 
       return self::$instance; 
   } 
}
Nach dem Login kopieren

Definieren Sie eine abstrakte Klasse, um DataOperation zu implementieren. Wir möchten eine Datenbankverbindung teilen, also initialisiere ich das Datenbankobjekt in der abstrakten Klasse, damit alle Unterklassen dieses Objekt teilen können

abstract class DataBaseOperation implements DataOperation 
{ 
   protected $db = null;  
   public function construct() 
   { 
       $this->db = DataBaseSource::getInstance(); 
   } 
   public function select($info); 
}
Nach dem Login kopieren

Jetzt werde ich eine Geschäftsunterklasse schreiben, um die abstrakte Klasse DataBaseOperation zu implementieren

class Tech extends DataBaseOperation 
{ 
   public function select($info) 
   { 
       //在这里实现你的代码 
   } 
   public function selectNum($info) 
   { 
       //在这里实现你的代码 
   } 
}
Nach dem Login kopieren

Wir haben die Geschäftslogikschicht implementiert, und das Folgende ist die Kontrollebene

class ViewController implements Controller 
{ 
   private $mod = array(); 
   public function push($key,$value); 
   { 
       //实现你的代码,将类注册进$this->mod; 
   } 
   public function pop($key) 
   {         
       //实现你的代码,将$this->mod[$key]值为null; 
   } 
   public function execute($key) 
   { 
       //在这里实现你的代码,生成实例.注意利用php5新的特性,异常的处理 
   } 
}
Nach dem Login kopieren

Okay, hier ist die Präsentationsebene, in der die Schnittstellenansicht

abstract ArticleView implements View 
{ 
   protected $smarty = null; 
   public function construct() 
   { 
       $this->smarty = new Smarty(); 
       ///下面你可以定义smarty的一些属性值 
   } 
}
Nach dem Login kopieren

spezifische Seiten, z. B. die Anzeigeseite wissenschaftlicher Artikel
wird implementiert

class TechArticleView extends ArticleView 
{ 
   public function display() 
   { 
       //实现你的代码,调用Tech类和更多的DataBaseOperation子类 
   } 
}
Nach dem Login kopieren

Okay, hier ist der Haupteingang index.php

try 
{ 
   $viewController = new ViewController(); 
   $viewController->push("tech",TechArticleView);   
//持续的增加   
   $mod = $_GET["mod"]:$_GET["mod"]:$_POST["mod"]; 
   //最后 
   $viewController->execute($key); 
} 
catch(
Exception
 $e) 
{ 
       //如何处理异常就是你的事了 
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonBeispielcode für MVC-Musteranwendungsfähigkeiten in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

CakePHP-Projektkonfiguration CakePHP-Projektkonfiguration Sep 10, 2024 pm 05:25 PM

In diesem Kapitel werden wir die Umgebungsvariablen, die allgemeine Konfiguration, die Datenbankkonfiguration und die E-Mail-Konfiguration in CakePHP verstehen.

PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 bringt mehrere neue Funktionen, Sicherheitsverbesserungen und Leistungsverbesserungen mit einer beträchtlichen Menge an veralteten und entfernten Funktionen. In dieser Anleitung wird erklärt, wie Sie PHP 8.4 installieren oder auf PHP 8.4 auf Ubuntu, Debian oder deren Derivaten aktualisieren. Obwohl es möglich ist, PHP aus dem Quellcode zu kompilieren, ist die Installation aus einem APT-Repository wie unten erläutert oft schneller und sicherer, da diese Repositorys in Zukunft die neuesten Fehlerbehebungen und Sicherheitsupdates bereitstellen.

CakePHP Datum und Uhrzeit CakePHP Datum und Uhrzeit Sep 10, 2024 pm 05:27 PM

Um in cakephp4 mit Datum und Uhrzeit zu arbeiten, verwenden wir die verfügbare FrozenTime-Klasse.

CakePHP-Datei hochladen CakePHP-Datei hochladen Sep 10, 2024 pm 05:27 PM

Um am Datei-Upload zu arbeiten, verwenden wir den Formular-Helfer. Hier ist ein Beispiel für den Datei-Upload.

CakePHP-Routing CakePHP-Routing Sep 10, 2024 pm 05:25 PM

In diesem Kapitel lernen wir die folgenden Themen im Zusammenhang mit dem Routing kennen.

Besprechen Sie CakePHP Besprechen Sie CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP ist ein Open-Source-Framework für PHP. Es soll die Entwicklung, Bereitstellung und Wartung von Anwendungen erheblich vereinfachen. CakePHP basiert auf einer MVC-ähnlichen Architektur, die sowohl leistungsstark als auch leicht zu verstehen ist. Modelle, Ansichten und Controller gu

So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein Dec 20, 2024 am 11:31 AM

Visual Studio Code, auch bekannt als VS Code, ist ein kostenloser Quellcode-Editor – oder eine integrierte Entwicklungsumgebung (IDE) –, die für alle gängigen Betriebssysteme verfügbar ist. Mit einer großen Sammlung von Erweiterungen für viele Programmiersprachen kann VS Code c

CakePHP erstellt Validatoren CakePHP erstellt Validatoren Sep 10, 2024 pm 05:26 PM

Der Validator kann durch Hinzufügen der folgenden zwei Zeilen im Controller erstellt werden.

See all articles