Inhaltsverzeichnis
1. Modelle
3. 控制器
Heim Backend-Entwicklung PHP-Tutorial Yii Framework Offizieller Leitfaden Serie 15 – Grundlagen: Best MVC Practices

Yii Framework Offizieller Leitfaden Serie 15 – Grundlagen: Best MVC Practices

Feb 13, 2017 am 09:08 AM



Obwohl Model-View-Controller (MVC) bei fast jedem Webentwickler bekannt ist, wie wird er in der tatsächlichen Anwendungsentwicklung eingesetzt? Die Verwendung von MVC bereitet vielen Menschen immer noch Probleme. Die Kernidee hinter MC ist die Wiederverwendbarkeit des Codes und die Trennung von Logik und Ansichten . In diesem Abschnitt beschreiben wir, wie Sie MVC besser zum Entwickeln von Anwendungen verwenden können, wenn Sie das Yii-Framework verwenden.

Zur besseren Erklärung gehen wir davon aus, dass die Webanwendung die folgenden Unteranwendungen enthält:

  • Frontend: eine öffentliche Website-Schnittstelle für Endbenutzer;

  • Backend: Bietet Verwaltungsfunktionen zur Verwaltung der gesamten Website-Anwendung, auf die normalerweise nur Administratoren zugreifen und sie verwenden können.

  • Konsole: Kann in einem Terminalfenster ausgeführt werden Anwendungen, die Konsolenbefehle enthalten;

  • Web-API: Bietet eine Schnittstelle für Dritte zur Interaktion mit dieser Anwendung.

Diese Unteranwendungen können in Form von Modulen implementiert werden oder es kann sich um Yii-Anwendungen handeln, die Code mit anderen Unteranwendungen teilen.

1. Modelle

Modelle stellen die zugrunde liegende Datenstruktur einer Webanwendung dar. Beispielsweise kann es sich um ein LoginForm-Modell handeln Wird sowohl vom Front-End als auch vom Back-End einer Anwendung verwendet. Ein News-Modell kann daher von den Konsolenbefehlen, Web-APIs und dem Front-/Back-End einer Anwendung verwendet werden 🎜>

sollte Eigenschaften zur Darstellung spezifischer Daten enthalten;
  • sollte Geschäftslogik (z. B. Validierungsregeln) enthalten, um sicherzustellen, dass die dargestellten Daten die Designanforderungen erfüllen;
  • kann Code zum Bearbeiten von Daten enthalten. Beispielsweise kann ein
  • -Modell neben der Darstellung der Sucheingabedaten eine
  • -Methode zum Implementieren der eigentlichen Suche enthalten.

    SearchFormsearch

    Manchmal kann das Befolgen der letzten Regel dazu führen, dass ein Modell sehr fett wird und zu viel Code in einer einzelnen Klasse enthält. Außerdem kann es schwierig sein, das Modell zu warten, wenn der darin enthaltene Code anderen Zwecken dient 🎜> Das Modell kann eine Methode namens  
  • enthalten, die nur vom Front-End verwendet wird. Es kann auch eine Methode namens  
enthalten, die nur vom Back-End verwendet wird. Dies kann für eine kleine bis mittlere Anwendung in Ordnung sein Größe. Für große Anwendungen kann die folgende Strategie verwendet werden, um Modelle wartbarer zu machen:

NewsgetLatestNewsgetDeletedNewsDefinieren Sie eine

Modellklasse, die nur Code enthält, der von verschiedenen Unteranwendungen (z. B. Front) gemeinsam genutzt wird
  • NewsBaseDefinieren Sie in jeder Unteranwendung ein

    -Modell, indem Sie von
  • aus den gesamten Code platzieren, der für die Unteranwendung spezifisch ist in diesem
  • -Modell.

    NewsNewsBaseNewsWenn wir also diese Strategie in unserem obigen Beispiel anwenden würden, würden wir ein

    -Modell in der Front-End-Anwendung hinzufügen, das nur das enthält
  • -Methode, und wir würden ein weiteres
-Modell in der Back-End-Anwendung hinzufügen, das nur die

-Methode enthält.NewsgetLatestNewsIm Allgemeinen sollten Modelle keine Logik enthalten, die sich direkt mit Endbenutzern befasst. Genauer gesagt sollten ModelleNewsgetDeletedNews

nicht

,
    oder andere ähnliche Variablen verwenden, die direkt mit der Endbenutzeranforderung verknüpft sind. Denken Sie daran, dass ein Modell möglicherweise von verwendet wird eine völlig andere Unteranwendung (z. B. Unit-Test, Web-API), die diese Variablen möglicherweise nicht zur Darstellung von Benutzeranforderungen verwendet. Diese Variablen, die sich auf die Benutzeranforderung beziehen, sollten vom Controller verarbeitet werden.
  • $_GET$_POSTEs sollte vermieden werden, HTML oder anderen Präsentationscode einzubetten. Da der Präsentationscode je nach den Anforderungen des Endbenutzers variiert (z. B. können Front-End und Backend die Details einer Nachricht in völlig unterschiedlichen Formaten anzeigen), sollte er besser durch Ansichten berücksichtigt werden.

  • 2. Ansichten

  • Ansichten sind dafür verantwortlich, Modelle in dem Format darzustellen, das Endbenutzer wünschen. Im Allgemeinen sollten Ansichten

sein enthalten hauptsächlich Präsentationscode wie HTML und einfachen PHP-Code zum Durchlaufen, Formatieren und Rendern von Daten.

  • Es sollte vermieden werden, Code zu enthalten, der explizite DB-Abfragen ausführt. Solcher Code sollte besser in Modellen platziert werden .

  • sollte den direkten Zugriff auf

    ,
  • oder andere ähnliche Variablen vermeiden, die die Endbenutzeranforderung darstellen. Dies ist die Aufgabe des Controllers Anzeige und Layout der vom Controller und/oder Modell bereitgestellten Daten, jedoch kein Versuch, direkt auf Anforderungsvariablen oder die Datenbank zuzugreifen.
  • kann direkt auf Eigenschaften und Methoden von Controllern und Modellen zugreifen. Dies sollte jedoch nur zu Präsentationszwecken erfolgen.

Ansichten können auf unterschiedliche Weise wiederverwendet werden:

  • Layout: gemeinsame Präsentationsflächen (z. B. Seitenkopf, Fußzeile) können in eine Layoutansicht eingefügt werden.

  • Teilansichten: Verwenden Sie Teilansichten (Ansichten, die nicht durch Layouts dekoriert werden), um Fragmente des Präsentationscodes wiederzuverwenden. Beispielsweise verwenden wir _form.php Teilansicht, um das Modelleingabeformular darzustellen, das sowohl auf den Modellerstellungs- als auch auf den Aktualisierungsseiten verwendet wird.

  • Widgets: wenn für die Präsentation viel Logik erforderlich ist B. eine Teilansicht, kann die Teilansicht in ein Widget umgewandelt werden, dessen Klassendatei der beste Ort ist, um diese Logik zu enthalten. Für Widgets, die viel HTML-Markup generieren, ist es am besten, für das Widget spezifische Ansichtsdateien zu verwenden, um das Markup zu enthalten.

  • Hilfsklassen: In Ansichten benötigen wir oft einige Codeausschnitte, um das Markup zu enthalten Erledigen Sie kleine Aufgaben wie das Formatieren von Daten oder das Generieren von HTML-Tags. Anstatt diesen Code direkt in den Ansichtsdateien zu platzieren, besteht ein besserer Ansatz darin, alle diese Codeausschnitte in einer Ansichts-Hilfsklasse zu platzieren. Dann verwenden Sie einfach die Hilfsklasse in Ihren Ansichtsdateien. Yii liefert ein Beispiel für diesen Ansatz. Yii verfügt über eine leistungsstarke CHtml-Hilfsklasse, die häufig verwendeten HTML-Code erstellen kann. Hilfsklassen können in einem automatisch ladbaren Verzeichnis abgelegt werden, sodass sie ohne explizite Klasseneinbindung verwendet werden können.

3. 控制器

Controller sind der Klebstoff, der Modelle, Ansichten und andere Komponenten zu einer ausführbaren Anwendung zusammenhält. Controller sind für die direkte Bearbeitung von Endbenutzeranfragen verantwortlich. Daher können Controller

  • auf $_GET$_POST und andere PHP-Variablen zugreifen, die Benutzeranfragen darstellen;

  • können Modellinstanzen erstellen und verwalten ihre Lebenszyklen. Beispielsweise kann der Controller bei einer typischen Modellaktualisierungsaktion zunächst die Modellinstanz erstellen. Füllen Sie dann das Modell mit der Benutzereingabe von$_POST; Nach erfolgreichem Speichern des Modells leitet der Controller den Benutzerbrowser möglicherweise zur Modelldetailseite weiter. Beachten Sie, dass sich die eigentliche Implementierung zum Speichern eines Modells im Modell und nicht im Controller befinden sollte.

  • Es sollte vermieden werden, eingebettete SQL-Anweisungen zu enthalten, die besser in Modellen aufbewahrt werden.

  • sollte vermeiden, HTML oder andere Präsentations-Markups zu enthalten. Dies wird besser in Ansichten aufbewahrt.

In einer gut gestalteten MVC-Anwendung sind Controller oft sehr dünn und enthalten wahrscheinlich nur ein paar Dutzend Codezeilen; während Modelle sehr umfangreich sind und den größten Teil des Codes enthalten, der für die Darstellung und Bearbeitung der Daten verantwortlich ist. Dies liegt daran, dass die durch Modelle dargestellte Datenstruktur und Geschäftslogik typischerweise sehr anwendungsspezifisch ist und stark angepasst werden muss, um die spezifischen Anwendungsanforderungen zu erfüllen. während die Controller-Logik in allen Anwendungen häufig einem ähnlichen Muster folgt und daher durch das zugrunde liegende Framework oder die Basisklassen durchaus vereinfacht werden kann ,更多相关内容请关注PHP中文网(www.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

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)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
3 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)

RESTful API-Entwicklung im Yii-Framework RESTful API-Entwicklung im Yii-Framework Jun 21, 2023 pm 12:34 PM

Yii ist ein leistungsstarkes MVC-Framework auf Basis von PHP. Es bietet einen sehr umfangreichen Satz an Tools und Funktionen zur Unterstützung der schnellen und effizienten Entwicklung von Webanwendungen. Unter anderem hat die RESTfulAPI-Funktion des Yii-Frameworks immer mehr Aufmerksamkeit und Liebe von Entwicklern auf sich gezogen, da mit dem Yii-Framework problemlos leistungsstarke und leicht skalierbare RESTful-Schnittstellen erstellt werden können, die die Entwicklung von Webanwendungen stark unterstützen. Einführung in RESTfulAPI RESTfulAPI ist eine

So verwenden Sie das Yii-Framework in PHP So verwenden Sie das Yii-Framework in PHP Jun 27, 2023 pm 07:00 PM

Mit der rasanten Entwicklung von Webanwendungen ist die moderne Webentwicklung zu einer wichtigen Fähigkeit geworden. Für die Entwicklung effizienter Webanwendungen stehen viele Frameworks und Tools zur Verfügung, unter denen das Yii-Framework ein sehr beliebtes Framework ist. Yii ist ein leistungsstarkes, komponentenbasiertes PHP-Framework, das die neuesten Designmuster und Technologien nutzt, leistungsstarke Tools und Komponenten bereitstellt und sich ideal für die Erstellung komplexer Webanwendungen eignet. In diesem Artikel besprechen wir, wie Sie das Yii-Framework zum Erstellen von Webanwendungen verwenden. Installieren Sie zuerst das Yii-Framework.

Schritte zum Implementieren von Webseiten-Caching und Seiten-Chunking mit dem Yii-Framework Schritte zum Implementieren von Webseiten-Caching und Seiten-Chunking mit dem Yii-Framework Jul 30, 2023 am 09:22 AM

Schritte zum Implementieren von Webseiten-Caching und Seiten-Chunking mit dem Yii-Framework Einführung: Während des Webentwicklungsprozesses ist es zur Verbesserung der Leistung und Benutzererfahrung der Website häufig erforderlich, die Seite zwischenzuspeichern und zu segmentieren. Das Yii-Framework bietet leistungsstarke Caching- und Layoutfunktionen, die Entwicklern dabei helfen können, Webseiten-Caching und Seiten-Chunking schnell zu implementieren. In diesem Artikel wird erläutert, wie das Yii-Framework zum Implementieren von Webseiten-Caching und Seiten-Chunking verwendet wird. 1. Aktivieren Sie das Webseiten-Caching. Im Yii-Framework kann das Webseiten-Caching über die Konfigurationsdatei aktiviert werden. Öffnen Sie die Hauptkonfigurationsdatei co

Erstellen Sie eine Spielanleitungs-Website mit dem Yii-Framework Erstellen Sie eine Spielanleitungs-Website mit dem Yii-Framework Jun 21, 2023 pm 01:45 PM

In den letzten Jahren haben mit der rasanten Entwicklung der Spielebranche immer mehr Spieler begonnen, nach Spielstrategien zu suchen, die ihnen helfen, das Spiel zu bestehen. Daher kann die Erstellung einer Spielanleitungs-Website den Spielern den Zugang zu Spielanleitungen erleichtern und gleichzeitig den Spielern ein besseres Spielerlebnis bieten. Beim Erstellen einer solchen Website können wir das Yii-Framework für die Entwicklung verwenden. Das Yii-Framework ist ein Webanwendungsentwicklungsframework, das auf der Programmiersprache PHP basiert. Es zeichnet sich durch hohe Effizienz, Sicherheit und starke Skalierbarkeit aus und kann uns dabei helfen, einen Spielführer schneller und effizienter zu erstellen.

Yii-Framework-Middleware: Bereitstellung mehrerer Datenspeicherunterstützung für Anwendungen Yii-Framework-Middleware: Bereitstellung mehrerer Datenspeicherunterstützung für Anwendungen Jul 28, 2023 pm 12:43 PM

Yii-Framework-Middleware: Bereitstellung mehrerer Datenspeicherunterstützung für Anwendungen Einführung Middleware (Middleware) ist ein wichtiges Konzept im Yii-Framework, das mehrere Datenspeicherunterstützung für Anwendungen bereitstellt. Middleware fungiert wie ein Filter und fügt benutzerdefinierten Code zwischen den Anforderungen und Antworten einer Anwendung ein. Mithilfe der Middleware können wir Anforderungen verarbeiten, überprüfen, filtern und die verarbeiteten Ergebnisse dann an die nächste Middleware oder den endgültigen Handler weitergeben. Middleware im Yii-Framework ist sehr einfach zu verwenden

Yii Framework Middleware: Fügen Sie Ihrer Anwendung Protokollierungs- und Debugging-Funktionen hinzu Yii Framework Middleware: Fügen Sie Ihrer Anwendung Protokollierungs- und Debugging-Funktionen hinzu Jul 28, 2023 pm 08:49 PM

Yii-Framework-Middleware: Protokollierungs- und Debugging-Funktionen zu Anwendungen hinzufügen [Einführung] Bei der Entwicklung von Webanwendungen müssen wir normalerweise einige zusätzliche Funktionen hinzufügen, um die Leistung und Stabilität der Anwendung zu verbessern. Das Yii-Framework stellt das Konzept der Middleware bereit, das es uns ermöglicht, einige zusätzliche Aufgaben auszuführen, bevor und nachdem die Anwendung die Anfrage verarbeitet. In diesem Artikel wird erläutert, wie Sie die Middleware-Funktion des Yii-Frameworks verwenden, um Protokollierungs- und Debugging-Funktionen zu implementieren. [Was ist Middleware?] Middleware bezieht sich auf die Verarbeitung von Anfragen und Antworten vor und nach der Verarbeitung der Anfrage durch die Anwendung.

Verschlüsseln und entschlüsseln Sie sensible Daten mithilfe der Yii-Framework-Middleware Verschlüsseln und entschlüsseln Sie sensible Daten mithilfe der Yii-Framework-Middleware Jul 28, 2023 pm 07:12 PM

Verschlüsseln und Entschlüsseln sensibler Daten mithilfe der Yii-Framework-Middleware Einführung: In modernen Internetanwendungen sind Datenschutz und Datensicherheit sehr wichtige Themen. Um sicherzustellen, dass die sensiblen Daten der Benutzer nicht für unbefugte Besucher zugänglich sind, müssen wir diese Daten verschlüsseln. Das Yii-Framework bietet uns eine einfache und effektive Möglichkeit, die Funktionen zum Verschlüsseln und Entschlüsseln sensibler Daten zu implementieren. In diesem Artikel erfahren Sie, wie Sie dies mithilfe der Middleware des Yii-Frameworks erreichen. Einführung in das Yii-Framework Das Yii-Framework ist ein leistungsstarkes PHP-Framework.

So verwenden Sie Controller zur Verarbeitung von Ajax-Anfragen im Yii-Framework So verwenden Sie Controller zur Verarbeitung von Ajax-Anfragen im Yii-Framework Jul 28, 2023 pm 07:37 PM

Im Yii-Framework spielen Controller eine wichtige Rolle bei der Bearbeitung von Anfragen. Zusätzlich zur Verarbeitung regulärer Seitenanfragen können Controller auch zur Verarbeitung von Ajax-Anfragen verwendet werden. In diesem Artikel wird erläutert, wie Ajax-Anfragen im Yii-Framework verarbeitet werden, und es werden Codebeispiele bereitgestellt. Im Yii-Framework kann die Verarbeitung von Ajax-Anfragen über die folgenden Schritte erfolgen: Erstellen Sie zunächst eine Controller-Klasse (Controller). Sie können die vom Yii-Framework bereitgestellte grundlegende Controller-Klasse yiiwebCo erben

See all articles