CodeIgniter MVC (Model View Controller) Framework mit Beispiel

Inhaltsverzeichnis:

Anonim

Was ist MVC?

MVC-Standards für Model-View-Control. Es ist ein Architekturmuster, das die Anwendung in drei Hauptkomponenten aufteilt.

1. Das Modell befasst sich mit Geschäftslogik und Datenbankinteraktionen

2. Der Controller koordiniert die Aktivitäten zwischen dem Modell und der Ansicht

3. View ist für die Datenpräsentation verantwortlich

Im Folgenden sind einige der Vorteile des MVC-Architekturmusters aufgeführt

  • Lose Kopplung - die Komponenten existieren und funktionieren unabhängig voneinander.
  • Flexibilität - man kann leicht Änderungen an einzelnen Komponenten vornehmen
  • Erhöhte Produktivität - mehr als eine Person kann gleichzeitig an dem Projekt arbeiten. Die Front-End-Entwickler können an Ansichten und Präsentationen arbeiten, während sich Back-End-Entwickler auf Modelle konzentrieren können. Da das System lose gekoppelt ist, funktioniert es am Ende des Tages

In diesem Tutorial lernen Sie:

  • Was ist MVC?
    • Modell
    • Regler
    • Aussicht
  • Wie funktionieren MVC-Frameworks?
  • CodeIgniter Controller
  • CodeIgniter-Modell

Modell

Das Modell ist für die Interaktion mit Datenquellen verantwortlich. Dies ist normalerweise eine Datenbank, es kann sich aber auch um einen Dienst handeln, der die angeforderten Daten bereitstellt. Es ist auch üblich, dass die Geschäftslogik im Gegensatz zum Controller in den Modellen enthalten ist. Diese Praxis wird normalerweise als Fat Model Skinny Controller bezeichnet.

Das Modell schreibt normalerweise Daten in die Datenbank, bietet einen Mechanismus zum Bearbeiten und Aktualisieren sowie zum Löschen von Daten. In einer modernen Webanwendung verwenden Modelle Entwurfsmuster für den Datenzugriff, z. B. aktive Aufzeichnungen, um die Interaktion mit der Datenbank zu vereinfachen.

Beispielsweise verwendet CodeIgniter eine integrierte Bibliothek Active Record, um die Modelle zu unterstützen, während andere Frameworks wie Laravel Eloquent Object Relational Mapper (ORM) verwenden, das den Datenzugriff erleichtert.

Regler

Der Controller wartet auf eingehende Ressourcenanforderungen der Benutzer. Es fungiert als Zwischenstufe zwischen dem Modell und der Ansicht und implementiert zuweilen auch einige Geschäftsregeln. Angenommen, der Controller erhält eine Anforderung zum Registrieren eines Benutzers in der Datenbank.

Der Controller kann eine Datenvalidierung für das, was übermittelt wurde, durchführen, um sicherzustellen, dass alle erforderlichen Parameter übermittelt wurden. Wenn etwas fehlt, wird der Benutzer mit der entsprechenden Fehlermeldung zur Registrierungsseite weitergeleitet. Der Controller kann das Modell auch auffordern, eine weitere Validierung durchzuführen, indem er prüft, ob die übermittelte E-Mail-Adresse bereits vorhanden ist. Wenn alle Validierungsregeln erfolgreich sind, sendet der Controller die Daten zur Verarbeitung an das Modell und wartet auf die Antwort.

Sobald das Modell die Informationen verarbeitet und eine positive Antwort zurückgegeben hat, lädt der Controller die entsprechende Ansicht und übergibt die vom Modell zurückgegebenen Daten als Parameter.

Aussicht

Die Ansicht behandelt Daten, die dem Endbenutzer angezeigt werden. In Webanwendungen enthalten Ansichten häufig HTML, CSS und optional JavaScript. Ansichten enthalten minimalen Programmcode. Der in Ansichten enthaltene Code wird normalerweise verwendet, um Datensammlungen zu durchlaufen, die als Parameter vom Modell oder der Hilfsfunktion empfangen wurden, um Daten zu bereinigen oder Links zum Bearbeiten der Datensätze zu erstellen. Die meisten modernen Webanwendungen verwenden normalerweise Template-Engines, die ihre eigene Syntax definieren, die eher einem Pseudocode ähnelt und von Designern leicht verstanden werden kann. Bei der Arbeit mit CodeIgniter ist es üblich, kurze PHP-Tags und Kontrollstrukturen zu verwenden. Um etwas in CodeIgniter anzuzeigen, kann man den folgenden Code verwenden


Im Gegensatz zu

Kontrollstrukturen werden normalerweise wie folgt geschrieben


Wie Sie dem obigen Beispiel entnehmen können, verwendet die Ansicht eine Kombination aus PHP und HTML, anstatt alles in reinen PHP-Code einzuschließen.

Wie funktionieren MVC-Frameworks?

Das folgende Bild zeigt, wie das MVC-Framework funktioniert

Ein Controller empfängt die Anforderung vom Benutzer, interagiert bei Bedarf mit dem Datenbankmodell und gibt das Ergebnis in Form von HTML-Code an den Browser zurück, den der Browser in ein für Menschen lesbares Format interpretiert und dem Benutzer angezeigt hat.

CodeIgniter Controller

Lassen Sie uns nun zusammenfassen, was gerade passiert ist, als wir die obige URL in den Webbrowser geladen haben.

Öffnen Sie die Datei Welcome.php Controller, die sich in der Anwendung / den Controllern befindet

Sie sollten den folgenden Code sehen können

load->view('welcome_message');}}

HIER,

  • defined ('BASEPATH') ODER exit ('Kein direkter Skriptzugriff erlaubt'); verhindert den direkten Zugriff auf den Controller, wenn die Anforderung nicht über index.php eingegangen ist. Dies dient Sicherheitszwecken.
  • Klasse Welcome erweitert CI_Controller {…} definiert die Welcome Controller-Klasse und erweitert die übergeordnete Klasse CI_Controller
  • public function index () {…} definiert die Indexmethode, die auf die URL http: // localhost: 3000 reagiert
    • $ this-> load-> view ('welcome_message'); Lädt die Ansicht welcome_message, die sich im Verzeichnis application / views befindet

Wir werden nun die Indexmethode wie folgt aktualisieren

public function index(){$this->load->model('customers_model');$data['customer'] = $this->customers_model->get_customer(3);$this->load->view('welcome_message',$data);}

HIER,

  • $ this-> load-> model ('customers_model'); lädt das Kundenmodell.
  • $ data ['customer'] = $ this-> customers_model-> get_customer (3); Ruft die Methode get_customer von customers_model auf und übergibt den Parameter 3. In diesem Beispiel haben wir den Wert fest codiert, aber in realen Anwendungen wäre dies ein Parameter aus dem URI.
  • $ this-> load-> view ('welcome_message', $ data); Lädt die Ansicht welcome_message und übergibt die Variable $ data an die Ansicht

CodeIgniter-Modell

Lassen Sie uns nun die Ansicht erstellen, auf die wir im obigen Code verwiesen haben. Der Einfachheit halber interagiert unser Modell nicht mit der Datenbank, sondern gibt einen statischen Kundendatensatz zurück. Wir werden in den nächsten Tutorials mit Datenbanken arbeiten.

Erstellen Sie eine Datei Customers_model.php in application / models

Fügen Sie den folgenden Code hinzu


HIER,

  • Klasse Customers_model erweitert CI_Model {…} definiert das Modell Customers_model, das CI_Model erweitert.
  • Die öffentliche Funktion get_customer ($ id) {…} definiert die Methode get customer basierend auf einer Kunden-ID
  • $ data […] definiert die statischen Werte unseres fiktiven Kunden. Dies sollte eine von der Datenbank zurückgegebene Zeile sein.
  • $ data zurückgeben; gibt die Kundendaten zurück.

Das heißt, es für unser Modell. Lassen Sie uns nun die Ansicht welcome_message ändern

Öffnen Sie welcome_message.php in

application/views/welcome_message.php

Ersetzen Sie den Code durch den folgenden

CodeIgniter MVC Basics

Customer Details Card

Customer ID :

First Name :

Last Name :

Address :

Speichern Sie die Änderungen

Laden Sie die folgende URL in den Webbrowser

http: // localhost: 3000 /

Sie sollten in der Lage sein, die Kundenkarte wie in der Abbildung unten gezeigt zu sehen

Zusammenfassung

  • MVC ist ein Architekturmuster, das die Anwendung in drei Hauptkomponenten aufteilt
  • Das Modell ist für die Interaktion mit Datenquellen verantwortlich
  • Der Controller wartet auf eingehende Ressourcenanforderungen der Benutzer
  • In Webanwendungen enthalten Ansichten häufig HTML, CSS und optional JavaScript
  • Ein Controller empfängt die Anforderung vom Benutzer, interagiert bei Bedarf mit dem Datenbankmodell und gibt das Ergebnis in Form von HTML-Code an den Browser zurück