In diesem Kapitel erklären wir hauptsächlich den grundlegenden Überblick über ThinkPHP und die MVC-Struktur, die häufig in der Webserverentwicklung verwendet wird.
1. Eintragsdatei
Geben Sie die URL http://localhost/tp5_demo/public/
in den Browser ein Die Datei /tp5_demo/public/index.php im Ordner htdocs. Warum ist das so? Lassen Sie uns es Schritt für Schritt aufschlüsseln.
Wenn wir http://localhost eingeben, greift Apache auf den in seiner httpd.conf-Datei angegebenen DocumentRoot-Pfad zu. Im Fall von Zhao Tongxie ist es E:/xampp7/htdocs.
Das Zusammenfügen von /tp5_demo/public am Ende bedeutet, dass auf den Ordner /tp5_demo/public unter dem DocumentRoot-Pfad zugegriffen wird.
Warum befindet sich die Datei index.php letztendlich? Dies liegt daran, dass die Datei httpd.conf ein weiteres Attribut enthält, das DirectoryIndex definiert und index.php, index.html und andere Dateien als Eintragsdateien definiert. (Was? Warum glaubst du nicht, dass es ein Bild gibt? Sehen Sie sich Ihre httpd.conf-Datei selbst an)
Wenn in ThinkPHP die Zugriffsadresse nicht angegeben ist, wird sie an den Index-Controller unter weitergeleitet index()-Methode.
Das heißt, geben Sie
http://localhost/tp5_demo/public/
http://localhost/tp5_demo/public/index/index/index
einEs hat den gleichen Effekt.
2. Controller (Controller)
In der MVC-Architektur ist der Controller im Allgemeinen nur für die folgenden Funktionen verantwortlich:
Parameterüberprüfung
Dienst aufrufen
Modell aufrufen
Ergebnisse ausgeben
Um einen Controller im ThinkPHP-Framework zu erstellen, müssen Sie nur eine neue Klasse im Controller-Modul erstellen das entsprechende Modul.
Wie im Bild oben gezeigt, ist der Index-Controller im Indexmodul eingerichtet.
Die index()-Methode unter dem Index-Controller stellt eine Aktion dar, die auch eine Schnittstelle in der API-Entwicklung ist und über die Routing-URL des Konfigurationsframeworks gebunden werden kann.
Es ist zu beachten, dass in der Aktion nicht zu viele logische Operationen vorhanden sein sollten. Die Aktion sollte nur ein Aufrufer der Modellebene (Modell) und der Ansichtsebene (Ansicht) sein Gehen Sie zur Verarbeitung zur Modellschicht, und komplexere Logik sollte zur Verarbeitung in der Serviceschicht (Service) platziert werden. Diese Schichtidee ist die sogenannte aspektorientierte Programmierung (AOP).
Der Vorteil davon besteht darin, dass Sie bei Änderungen allgemeiner Vorgänge (z. B. Benutzeranmeldung, Berechnung der Aktivitätsmenge) nur den Code im Modell ändern müssen und dies keine Auswirkungen auf den aufrufenden Controller-Code hat das Modell.
Wenn Sie die gesamte Logik in den Controller stecken, müssen Sie, sobald Sie den Code ändern müssen, den gesamten zugehörigen Controller-Code ändern.
Ich habe Projekte gesehen, die die gesamte Logik in den Controller stecken und überhaupt keine Modelle verwenden. Beim Schreiben besteht keine Notwendigkeit, über Schichten oder Iterationen nachzudenken, was sehr erfrischend ist.
3. Modell
Modelldefinition bedeutet im Allgemeinen, dass eine Modellklasse einer Datentabelle entspricht.
Die meisten logischen Operationen in der serverseitigen Entwicklung sind tatsächlich das Auswählen/Erstellen/Aktualisieren/Löschen verschiedener Datentabellen.
Einige einfache logische Operationen, z. B. das Abrufen der Artikeldaten mit der ID 75. Es sollte als Methode im Modell gekapselt und auf der Controller-Ebene aufgerufen werden.
Das ThinkPHP-Framework bietet viele praktische Funktionen für Modelle, wie zum Beispiel: versteckte Felder, Feldmodifikatoren, Paging-Abfragen und das Definieren von Beziehungen.
Das Modell und diese Funktionen werden wir später im Detail vorstellen.
4. Ansicht
Die Ansichtsebene gibt den entsprechenden HTML-Code aus.
Sie können im Framework Vorlagen-Engines (z. B. die eigene Engine von ThinkPHP, die Smarty-Engine) verwenden, um Variablenersetzungen durchzuführen.
Aber jetzt ist die Serverseite in der API-Entwicklung beliebter. Daten werden über die API übertragen, um mit dem Frontend zu interagieren, und Ansichten werden selten für das Rendern von Seiten verwendet.
5. Route
Viele PHP-Frameworks verfügen über Routing-Funktionen, und Routing wurde dieses Konzept sogar zu Front-End-Frameworks wie Vue und React hinzugefügt.
Routing ist eigentlich eine Zuordnung zwischen unserer Zugriffs-URL und der Aktion im Controller, wie oben erwähnt:
http://localhost/tp5_demo/public/index/index/ index
dient zum Zugriff auf die Methode index() unter dem Index-Controller im Indexmodul.
Wir können es versuchen und die hello()-Methode zum Index-Controller hinzufügen:
6. Zusammenfassung
Hier In diesem Kapitel stellen wir vor: Verstehen Sie die grundlegenden Verwendungszwecke der drei heute beliebten Hauptkomponenten von MVC sowie das Konzept des Routings.
Kinder sollten den Workflow einer Back-End-Schnittstelle grob beherrschen, also: Routing->Controller->Model (->View).
Das obige ist der detaillierte Inhalt vonWas Sie über das ThinkPHP-Framework wissen müssen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!