CodeIgniter-Controller, Views-Routing: Lernen anhand eines Beispiels

โšก Intelligente Zusammenfassung

Dieser CodeDas Igniter-Beispiel erstellt eine kleine Anwendung, um zu zeigen, wie Routing, Controller und Views zusammenarbeiten. Ein neues Projekt wird mit Composer erstellt und die Routen zugeordnet. URLs werden an Controller-Methoden weitergeleitet, und jede Methode lรคdt eine Ansicht, die HTML an den Browser zurรผckgibt.

  • ๐Ÿงญ Routing: Routen stimmen mit einem รผberein URL zu einer Controller-Methode und einer nicht รผbereinstimmenden URL lรถst einen Seitenfehler aus.
  • ๏ธ Controller: Eine Controller-Methode reagiert auf eine Route, fordert Daten an und gibt eine Ansicht zurรผck.
  • ๐Ÿ–ผ๏ธ Views: Eine Ansicht kombiniert HTML, CSS und JavaSkript zur Anzeige des Ergebnisses fรผr den Benutzer.
  • ๐Ÿ“ฆ Projektaufbau: Composer erstellt das Projekt und der integrierte PHP-Server fรผhrt es lokal aus.
  • ๐Ÿ  Standardroute: default_controller legt die Startseite fest, und 404_override legt eine benutzerdefinierte Fehlerseite fest.
  • โž• Benutzerdefinierte Route: Eine Route wie about-us wird der about_us-Methode des Welcome-Controllers zugeordnet.
  • ๐Ÿ” Voller Durchfluss: URL Um zum Controller zu gelangen, dann zur Ansicht und anschlieรŸend als HTML zurรผck zum Browser.

CodeIgniter-Controller und -Ansichten

In diesem Tutorial lernen Sie die folgenden Themen kennen:

  • Routing โ€“ Das Routing ist fรผr die Beantwortung zustรคndig. URL Anfragen. Das Routing entspricht den Anfragen. URL zu den vordefinierten Routen. Falls keine passende Route gefunden wird, CodeIgniter lรถst eine โ€žSeite nicht gefundenโ€œ-Ausnahme aus.
  • Regler Routen sind mit Controllern verknรผpft. Controller verbinden Modelle und Ansichten. Sie fordern Daten und Geschรคftslogik vom Modell an und geben die Ergebnisse in der Darstellung der Ansicht zurรผck. Sobald ein URL Wenn eine Anfrage einer Route zugeordnet wurde, wird sie an die รถffentliche Funktion eines Controllers weitergeleitet. Diese Funktion interagiert mit der Datenquelle und der Geschรคftslogik und gibt die Ansicht zurรผck, die die Ergebnisse anzeigt.
  • Aufrufe โ€“ Ansichten sind fรผr die Darstellung zustรคndig. Eine Ansicht ist in der Regel eine Kombination aus HTML, CSS und JavaDas Skript. Dieser Teil ist fรผr die Anzeige der Webseite fรผr den Benutzer zustรคndig. Die angezeigten Daten werden รผblicherweise aus der Datenbank oder einer anderen verfรผgbaren Datenquelle abgerufen.

So erstellen Sie ein neues CodeIgniter-Projekt

Wir werden Composer verwenden, um ein neues Projekt zu erstellen. Wir werden den in PHP integrierten Server nutzen, daher ist keine zusรคtzliche Software wie beispielsweise โ€ฆ erforderlich. ApacheIn diesem Tutorial verwenden wir die Windows Da es sich um ein Standardbetriebssystem handelt, haben wir auf Laufwerk C einen Ordner namens โ€žSitesโ€œ erstellt. Sie kรถnnen aber auch ein anderes, fรผr Sie geeignetes Verzeichnis verwenden.

ร–ffnen Sie die Befehlszeile oder das Terminal und fรผhren Sie folgenden Befehl aus:

cd C:\Sites

Wir werden jetzt eine erstellen CodeIgniter-Projekt mit Composer. Fรผhren Sie folgenden Befehl aus:

composer create-project CodeIgniter/framework ci-app

Hier:

  • Der obige Befehl erstellt ein neues CodeIgniter-Projekt Version 3, unter Verwendung der neuesten stabilen Version (3.1.9 zum Zeitpunkt des Schreibens), in ein Verzeichnis namens ci-app.

Wenn der Befehl ausgefรผhrt wurde, sollten Sie im Terminal Ergebnisse sehen, die in etwa wie folgt aussehen:

Komponist erstellt einen neuen CodeIgniter-Projekt

Fรผhren Sie folgenden Befehl aus, um zum neu erstellten Projektverzeichnis ci-app zu navigieren:

cd ci-app

Starten Sie nun den in PHP integrierten Webserver:

php -S localhost:3000

Hier:

  • Der obige Befehl startet den integrierten PHP-Server, der auf Port 3000 lรคuft.

ร–ffnen Sie den Webbrowser und navigieren Sie zu folgendem Link: URL: http://localhost:3000/Sie erhalten die folgende Seite:

CodeStandard-Willkommensseite von Igniter

Wenn Sie die obige Seite sehen kรถnnen, herzlichen Glรผckwunsch, Sie haben die Installation erfolgreich abgeschlossen. CodeZรผnderDie Seite wird von der Ansicht in application/views/welcome_message.php gerendert, und der zustรคndige Controller befindet sich in application/controllers/Welcome.php.

CodeZรผnderfรผhrung

Im Moment hat unsere Anwendung nur eine einzige URLDies ist die Startseite. In diesem Abschnitt werden wir die Startseite anpassen und einige neue Elemente erstellen. URLs, die auf unterschiedliche Anfragen reagieren.

Beginnen wir mit der Route fรผr die Startseite. ร–ffnen Sie die Routendatei unter dem folgenden Pfad:

application/config/routes.php

Sie sollten den folgenden Inhalt sehen:

$route['default_controller'] = 'welcome';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;

Hier:

  • $route['default_controller'] = 'welcome'; definiert den Standard-Controller, der auf URI-Anfragen antwortet.
  • Mit `$route['404_override'] = '';` kรถnnen Sie eine benutzerdefinierte Route fรผr 404-Fehler definieren. Ein 404-Fehler tritt auf, wenn eine Seite nicht gefunden wird. CodeIgniter verfรผgt รผber eine Standardfehlerbehandlung, Sie kรถnnen aber bei Bedarf auch Ihre eigene definieren.
  • $route['translate_uri_dashes'] = FALSE; ermรถglicht es Ihnen, Bindestriche in Unterstriche umzuwandeln. Wir werden diese Option besprechen, wenn wir uns mit der Funktionsweise von Routen befassen. CodeZรผnder.

Schauen wir uns nun die Controller-Methode an, die fรผr die Anzeige der Startseite zustรคndig ist, die wir beim ร–ffnen gesehen haben. http://localhost:3000/ร–ffnen Sie die folgende Datei:

application/controllers/Welcome.php

Sie sollten folgenden Code sehen:

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Welcome extends CI_Controller {

public function index()
{
$this->load->view('welcome_message');
}
}

Hier:

  • `defined('BASEPATH') OR exit('No direct script access allowed');` verhindert den direkten Zugriff auf die Controller-Klasse ohne Umweg รผber die Datei `index.php`. Im MVC-Paradigma haben alle Anfragen einen einzigen Einstiegspunkt. CodeDer Igniter ist index.php. Dieser Code blockiert alle Anfragen, die nicht รผber index.php eingehen.
  • Die Klasse Welcome erweitert CI_Controller {โ€ฆ} definiert eine Klasse Welcome, die von der รผbergeordneten Klasse CI_Controller erbt.
  • public function index() definiert eine รถffentliche Funktion, die standardmรครŸig beim ร–ffnen der Startseite aufgerufen wird.
  • $this->load->view('welcome_message'); lรคdt die Ansicht welcome_message, die sich in application/views/welcome_message.php befindet.

Bislang haben wir nur untersucht, was standardmรครŸig enthalten ist. CodeIgniter. Nehmen wir nun einige ร„nderungen vor. Wir erstellen unsere eigene Startseite und ersetzen die Standardseite. Erstellen Sie eine neue Datei unter application/views/home.php und fรผgen Sie folgenden Code hinzu:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Hello CodeIgniter!</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.7.2/css/bulma.min.css">
<script defer src="https://use.fontawesome.com/releases/v5.3.1/js/all.js"></script>
</head>
<body>
<section class="section">
<div class="container">
<h1 class="title">
CodeIgniter Hello World
</h1>
</div>
</section>
</body>
</html>

Hier: Der obige HTML-Code lรคdt das Bulma CSS-Framework und Font Awesome von einem CDN und erstellt ein sehr einfaches HTML-Dokument. Er wendet eine einfache CSS-Regel aus dem Bulma CSS-Framework an.

ร–ffnen Sie Folgendes URL in Ihrem Browser: http://localhost:3000/. Sie sollten Folgendes sehen:

MaรŸgeschneidert CodeIgniter-Homepage

Super, wir haben die Startseite erfolgreich angepasst. Als Nรคchstes definieren wir unsere Route. Angenommen, unsere Anwendung soll auch eine โ€žรœber unsโ€œ-Seite anzeigen.

Erstellen Sie eine Route

ร–ffnen Sie die Routendatei application/config/routes.php und fรผgen Sie die folgende Route hinzu:

$route['about-us'] = 'welcome/about_us';

Hier:

  • Wenn ein Besucher die URL /about-us, wir weisen an CodeIgniter soll nach einem Controller namens โ€žWelcomeโ€œ suchen und die Methode โ€žabout_usโ€œ ausfรผhren.

Erstellen Sie einen Controller

Definieren wir nun die Controller-Methode about_us. ร–ffnen Sie application/controllers/Welcome.php und fรผgen Sie die folgende Methode hinzu:

public function about_us(){
$this->load->view('about_us');
}

Hier:

  • Der obige Code definiert eine Funktion about_us und lรคdt eine Ansicht about_us.

Erstellen Sie eine Ansicht

Erstellen wir nun die soeben erwรคhnte Ansicht. Erstellen Sie eine neue Datei about_us.php im Verzeichnis application/views/about_us.php und fรผgen Sie folgenden Code hinzu:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>About CodeIgniter!</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.7.2/css/bulma.min.css">
<script defer src="https://use.fontawesome.com/releases/v5.3.1/js/all.js"></script>
</head>
<body>
<section class="section">
<div class="container">
<h1 class="title">
About us yap...
</h1>
</div>
</section>
</body>
</html>

Wir kรถnnen loslegen. ร–ffnen Sie Folgendes: URL in Ihrem Webbrowser: http://localhost:3000/index.php/about-usSie sehen dann die folgende Seite:

CodeIgniter รœber uns-Seite

Wenn Sie die obige Seite sehen kรถnnen, herzlichen Glรผckwunsch, Sie haben erfolgreich eine einfache Anwendung erstellt in CodeZรผnder.

Hรคufig gestellte Fragen

Eine Routeneinfahrtskarte URL Segment zu einem Controller und einer Methode, wie z. B. 'welcome/about_us'. Wenn das URL wird angefordert, CodeIgniter fรผhrt die benannte Methode aus, die eine Ansicht lรคdt und zurรผckgibt.

Es legt den Controller fest, der das Website-Root-Verzeichnis verwaltet, wenn kein spezifischer Controller angegeben ist. URL ist angegeben. Im Beispiel bedeutet โ€žwelcomeโ€œ, dass die Startseite von der Index-Methode des Welcome-Controllers bereitgestellt wird.

Nein. Der integrierte PHP-Server, gestartet mit `php -S localhost:3000`, reicht aus, um das Beispiel lokal auszufรผhren. Apache oder Nginx werden nur fรผr den Produktiveinsatz benรถtigt.

Ja. Aus einer Seitenbeschreibung kann die KI den Routeneintrag, die Controller-Methode und eine passende Ansicht generieren.ping Namen konsistent. รœberprรผfen Sie die Pfade anhand Ihrer CodeZรผndversion.

Dieses Beispiel verwendet CodeIgniter 3, das Controller und Views unter application/ speichert. CodeMit Igniter 4 wurden die Verzeichnisse und Namensrรคume neu strukturiert, daher unterscheiden sich die Pfade und die Syntax in neueren Projekten.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: