Was ist das PHP MVC Framework?
PHP MVC ist ein Anwendungsdesignmuster, das die Anwendungsdaten und die Geschäftslogik (Modell) von der Präsentation (Ansicht) trennt. MVC steht für Model, View & Controller.
Der Controller vermittelt zwischen den Modellen und Ansichten.
Stellen Sie sich das MVC-Designmuster als Auto und Fahrer vor.
Das Auto verfügt über Windschutzscheiben (Ansicht), mit denen der Fahrer (Controller) den vorausfahrenden Verkehr überwacht und dann die Geschwindigkeit oder die Bremse (Modell) überwacht, je nachdem, was er vor sich sieht.
Warum PHP MVC Framework verwenden?
- PHP MVC Frameworks vereinfachen die Arbeit mit komplexen Technologien durch:
- Alle komplexen Implementierungsdetails ausblenden
- Bereitstellung von Standardmethoden, mit denen wir unsere Anwendungen erstellen können.
- Erhöhte Entwicklerproduktivität, da die Basisimplementierung von Aktivitäten wie das Herstellen einer Verbindung zur Datenbank, das Bereinigen von Benutzereingaben usw. bereits teilweise implementiert ist.
- Einhaltung professioneller Kodierungsstandards
In diesem Tutorial lernen Sie:
- PHP MVC Design Pattern
- Arten von PHP MVC Framework
- Portierung der Meinungsumfrageanwendung auf CodeIgniter
- Datenbankkonfigurationseinstellungen
- Unser Modell erstellen
- Unsere Ansichten erstellen
- Testen unserer Anwendung
PHP MVC Design Pattern
Lassen Sie uns nun kurz jede Komponente des MVC-Entwurfsmusters diskutieren.
Modell - Dieser Teil befasst sich mit der Geschäftslogik und den Anwendungsdaten. Es kann verwendet werden, um Datenvalidierungen durchzuführen, Daten zu verarbeiten und zu speichern. Die Daten können stammen von;
- flache Datei
- Datenbank
- XML-Dokument
- Andere gültige Datenquellen.
Controller - Dies ist der Teil, der sich mit den Anforderungen der Benutzer nach Ressourcen vom Server befasst.
Wenn der Benutzer beispielsweise die URL… /index.php?products=list anfordert, lädt der Controller das Produktmodell, um die Produktdaten abzurufen, und gibt die Ergebnisse in der Listenansicht aus.
Kurz gesagt, der Controller verknüpft die Modelle und Ansichten abhängig von den angeforderten Ressourcen miteinander.
Ansichten - Dieser Teil befasst sich mit der Präsentation der Daten für den Benutzer. Dies erfolgt normalerweise in Form von HTML-Seiten.
Arten von PHP MVC Framework
Die Auswahl des besten PHP-Frameworks ist eine Herausforderung.
Sie müssen kein eigenes Framework schreiben, um von den Vorteilen von MVC zu profitieren.
Sie sollten nur versuchen, ein eigenes MVC-bezogenes Anwendungsdesign zu erstellen, um zu verstehen, wie MVC-Frameworks funktionieren.
Sobald Sie mit der Funktionsweise von MVC-Frameworks vertraut sind, sollten Sie zu den ausgereiften und bereits getesteten Frameworks übergehen.
Die folgende Tabelle beschreibt kurz einige der gängigen PHP-Frameworks und die Funktionen, die jedes Framework bietet.
Rahmen | Beschreibung |
---|---|
![]() | Es ist eines der beliebtesten PHP MVC-Frameworks. Es ist leicht und hat eine kurze Lernkurve. Es verfügt über eine Vielzahl von Bibliotheken, mit denen Websites und Anwendungen schnell erstellt werden können. Benutzer mit begrenzten Kenntnissen der OOP-Programmierung können diese ebenfalls verwenden. CodeIgniter-basierte Anwendungen umfassen:
|
![]() | Es ist ein sicheres und leichtes HMVC-Framework für Hierarchical Model View Controller. Es verfügt über eine Vielzahl von Komponenten für die schnelle Entwicklung von Anwendungen. Zu den Unternehmen, die Kohana verwenden, gehören:
|
![]() | Es ist Ruby auf Schienen nachempfunden. Es ist bekannt für Konzepte wie Software-Design-Muster, Konventionen über die Konfiguration, ActiveRecord usw. Zu den Anwendungen mit CakePHP-Unterstützung gehören:
|
![]() | Es ist ein mächtiger Rahmen, der ist;
|
Portierung der Meinungsumfrageanwendung auf CodeIgniter
In diesem Tutorial haben wir eine PHP-Umfrageanwendung erstellt. Hier portieren wir diesen Code auf CodeIgniter
- Laden Sie die neueste Version von CodeIgniter von der Website herunter.
- Extrahieren Sie den Inhalt der komprimierten Datei in Ihr Entwicklungsverzeichnis in Ihrem Webserververzeichnis. In dieser Lektion verwenden wir ciopinionpoll als Ordnernamen.
- Navigieren Sie zur URL http: // localhost / ciopinionpoll /
Wir werden jetzt unsere Meinungsumfrage auf CodeIgniter portieren. Denken Sie daran, dass unsere Anwendung in drei Hauptkomponenten unterteilt wurde, nämlich die;
- Front Controller - Dies ist der Teil, der auf URL-Anfragen reagiert und die angeforderte Seite zurückgibt. Dieser Code wird in die Steuerung eingegeben
- Modell - Dies ist der Code, der auf angeforderte Daten reagiert und die angeforderten Daten zurückgibt. Dieser Code wird in das Modell aufgenommen
- Ansichten - Dies ist der Code, der für die Formatierung und Anzeige der Daten verantwortlich ist. Dieser Code wird in die Ansicht aufgenommen
- Navigieren Sie zum Ordner ciopinionpoll
- Öffnen Sie die Datei database.php im Verzeichnis application / config.
- Suchen Sie die folgenden Codezeilen
Datenbankkonfigurationseinstellungen
- Setzen Sie den Benutzernamen auf root
- Setzen Sie das Passwort auf Ihr localhost-Root-Passwort
- Datenbankname zu opinion_poll. Beachten Sie, dass wir die in der vorherigen Lektion erstellte Datenbank verwenden.
- Speichern Sie die Änderungen und schließen Sie die Datei.
Unser Modell erstellen
Als nächstes erstellen wir unser Modell, das das CI_Model erweitert. Das CI_Model ist Teil der CodeIgniter-Bibliotheken. Das Modell befindet sich in application / models opinion_poll_model.php
load->database();}public function total_votes(){$query = $this->db->select('COUNT(choice) as choices_count')->get('js_libraries');return $query->row()->choices_count;}public function get_results(){$libraries = array("", "JQuery", "MooTools", "YUI Library", "Glow");$table_rows = '';for ($i = 1; $i < 5; $i++){$sql_stmt = "SELECT COUNT(choice) choices_count FROM js_libraries WHERE choice = $i;";$result = $model->select($sql_stmt); $table_rows .= "";}public function add_vote($choice){$ts = date("Y-m-d H:i:s"); $data = array('choice' => $choice, 'ts' => $ts); $this->db->insert('js_libraries', $data);}}?> " . $ libraries [$i] . " Got: " . $result[0] . " votes
HIER,
- "Klasse Opinion_poll_model erweitert CI_Model ..." ist unser Modell, das das CI_Model erweitert
- "... parent :: __construct ();" Ruft den CI_Model-Konstruktor auf
- "$ This-> load-> database ();" Lädt die Datenbankbibliothek, damit unsere Anwendung mit der Datenbank interagieren kann
- "$ This-> db->" ist der aktive Datensatz von CodeIgniter. Überprüfen Sie diesen Link, um weitere Informationen zum aktiven Datensatz zu erhalten.
Erstellen unseres Controllers Lassen Sie uns nun den Controller erstellen. Wir werden den Standard-CodeIgniter-Controller verwenden, der sich in application / controller / welcome.php befindet. Ersetzen Sie die Quellcodes durch den folgenden Code.
load->model('opinion_poll_model');}public function index() {if ($this->input->post('submitbutton') && !$this->input->post('vote')) {echo "";}if ($this->input->post('vote')) {$this->opinion_poll_model->add_vote($this->input->post('vote'));$data['total_votes'] = $this->opinion_poll_model->total_votes();$data['rows'] = $this->opinion_poll_model->get_results();$this->load->view('results', $data);} else {$this->load->view('opinion_poll_form');}}}/* End of file welcome.php *//* Location: ./application/controllers/welcome.php */?>
HIER,
- "If (! Defined ('BASEPATH')) exit ('Kein direkter Skriptzugriff erlaubt');" stellt sicher, dass Benutzer nicht direkt auf die Controller-Klasse zugreifen
- "Class Welcome erweitert CI_Controller ..." Unser Controller erweitert die CI_Controller-Klasse
- "Public function __construct ()" ruft die Klassenkonstruktionsmethode von CI_Controller auf und lädt unser Opinion_poll_model-Modell
- "Public function index () ..." ist die Funktion, die index.php zugeordnet ist. Es verwendet die Eingabeklasse von CodeIgniter, um zu überprüfen, ob eine Abstimmung abgegeben wurde. Fügen Sie sie der Datenbank hinzu und zeigen Sie die Ergebnisse an. Wenn das Post-Array der Eingabeklasse leer ist, wird die Abstimmungsseite geladen.
- "$ This-> input-> post ('…')" ist die CodeIgniter-Eingabeklasse, die den Inhalt der globalen Variablen $ _POST erfasst.
- "$ This-> opinion_poll_model-> add_vote ($ this-> input-> post ('vote'))" ruft die add_vote-Methode des Modells auf, um die Abstimmung in die Datenbank aufzunehmen.
Unsere Ansichten erstellen
Erinnern Sie sich an das vorherige Beispiel, dass wir zwei HTML-Seiten hatten, eine für die Abstimmung und die andere für die Ergebnisse. Wir werden denselben HTML-Code mit minimalen Änderungen verwenden, um unsere Ansichten zu erstellen. Erstellen Sie die folgenden Dateien im Verzeichnis application / views
opinion_poll_form.phpJavaScript Libraries - Opinion Poll JavaScript Libraries - Opinion Poll
What is your favorite JavaScript Library?
Lassen Sie uns nun die Ergebnisseite results.php erstellen
JavaScript Libraries - Opinion Poll Results JavaScript Libraries - Opinion Poll Results
What is your favorite JavaScript Library?
people have thus far taken part in this poll:
Testen unserer Anwendung
Angenommen, das Stammverzeichnis Ihrer Anwendung ist ciopinion, navigieren Sie zu http: // localhost / ciopionpoll /
Klicken Sie auf OK, um die folgende Warnmeldung anzuzeigen
Stimmen Sie für Ihren Lieblingskandidaten ab und klicken Sie auf OK. Die folgende Ergebnisseite wird angezeigt
Fazit
CodeIgniter ist ein einfach zu erlernendes und zu verwendendes PHP MVC-Framework, mit dem sich der Zeitaufwand für die Entwicklung von Anwendungen erheblich reduzieren lässt.
Zusammenfassung
- Ein Framework besteht aus einer Reihe von Bibliotheken, die eine teilweise Implementierung allgemeiner Aufgaben ermöglichen.
- PHP verfügt über eine Reihe von Open Source-ausgereiften und getesteten MVC-Frameworks.
- Ein guter Entwicklungsansatz trennt die Daten von der Präsentation und fördert die Verwendung eines einzelnen Einstiegspunkts in eine Anwendung.
- Herkömmliche PHP-Anwendungen, die den Best Practices für das Anwendungsdesign folgen, können mit minimalen Änderungen auf MVC-Frameworks portiert werden.