CodeIgniter Controllers, Views Routing: Lär dig med exempelappen

I den här handledningen kommer du att lära dig följande ämnen.

  • Rutthantering – routing ansvarar för att svara på URL-förfrågningar. Routing matchar URL:en med de fördefinierade rutterna. Om ingen ruttmatchning hittas, skickar CodeIgniter en sida som inte hittas ett undantag.
  • controllers – rutter är kopplade till styrenheter. Styrenheter limmar ihop modellerna och vyerna. Begäran om data/affärslogik från modellen och returnera resultaten i presentationen av vyn. När en URL har matchats till en rutt vidarebefordras den till en kontrollants offentliga funktion. Denna funktion interagerar med datakällan, affärslogik och returnerar vyn som visar resultaten.
  • Visningar – synpunkter ansvarar för presentationen. En vy är vanligtvis en kombination av HTML, CSS och JavaManus. Detta är den del som är ansvarig för att visa webbsidan för användaren. Vanligtvis hämtas data som visas vanligtvis från databasen eller andra tillgängliga datakällor.

Hur man skapar ett nytt CodeIgniter-projekt

Vi kommer att använda Composer för att skapa ett nytt projekt. Jag kommer att använda den inbyggda PHP-servern, så det är inte nödvändigt att ha extra programvara som t.ex Apache. I den här handledningen använder vi Windows operativsystem. Därför har vi skapat en Sites-mapp på enhet C. Du kan använda vilken katalog som helst som passar dig.

Öppna kommandoraden/terminalen och kör följande kommando

cd C:\Sites

Vi kommer nu att skapa ett CodeIgniter-projekt med hjälp av Composer. Kör följande kommando

composer create-project CodeIgniter/framework ci-app

HÄR,

  • Ovanstående kommando skapar ett nytt CodeIgniter-projekt version 3 med den senaste stabila versionen, dvs. 3.1.9, till en katalog-ci-app.

När kommandot ovan har körts, bör du kunna få resultat som liknar följande i terminalen

Skapa ett nytt CodeIgniter-projekt

Kör följande kommando för att bläddra till den nyskapade projektkatalogen ci-app

cd ci-app

Låt oss nu starta den inbyggda PHP-webbservern

 php -S localhost:3000

HÄR,

  • Ovanstående kommando startar den inbyggda PHP-servern som körs på port 3000.

Öppna webbläsaren och bläddra i följande URL: http://localhost:3000/

Du får följande sida

Skapa ett nytt CodeIgniter-projekt

Om du kan se sidan ovan så grattis, du har framgångsrikt installerat CodeIgniter.

Som du kan läsa från ovanstående webbsida återges sidan som visas ovan av vyn som finns i application/views/welcome_message.php och ansvarig kontrollant finns i application/controllers/Welcome.php

CodeIgniter Routing

För närvarande har vår applikation bara en enda URL som är startsidan. I det här avsnittet kommer vi att anpassa hemsektionen. Vi kommer att skapa några nya webbadresser som kommer att svara på de olika förfrågningarna.

Låt oss börja med startsidans rutt

Öppna ruttfilen enligt sökvägen nedan

application/config/routes.php

Du bör kunna se följande innehåll

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

HÄR,

  • $route['default_controller'] = 'välkommen'; definierar standardkontrollern som svarar på URI-förfrågningar
  • $route['404_override'] = ”; denna rutt låter dig definiera en anpassad rutt för 404-fel. Ett 404-fel uppstår när en sida inte hittas. CodeIgniter har en standardhanterare för felet men du kan definiera din egen om du så önskar.
  • $route['translate_uri_dashes'] = FALSK; det här alternativet låter dig översätta streck till understreck. Vi kommer att prata om det här alternativet när vi tittar på hur rutter fungerar i CodeIgniter.

Låt oss nu titta på kontrollmetoden som är ansvarig för att visa startsidan som vi såg när vi öppnade URL:en http://localhost:3000/ i webbläsaren.

Öppna följande fil

application/controllers/Welcome.php

Du bör kunna se följande kod

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

class Welcome extends CI_Controller {

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

HÄR,

  • Definerad ('BASEPATH') OR exit('Ingen direkt skriptåtkomst tillåten'); skyddar mot direkt åtkomst till controllerklassen utan att gå igenom filen index.php. Kom ihåg att i MVC-paradigmet har alla förfrågningar en enda ingångspunkt, och för CodeIgniter, dess index.php. Denna kod blockerar alla förfrågningar som inte kommer via index.php
  • class Welcome extends CI_Controller {...} definierar en klass Welcome som utökar den överordnade klassen CI_Controller
  • public function index() definierar en offentlig funktion som anropas som standard när du öppnar hemsidan
  • $this->load->view('welcome_message'); den här raden laddar vyn welcome_message. Filen welcome_message finns i katalogen application/views/welcome_message.php

Hittills har vi bara utforskat vad som kommer ut ur lådan med CodeIgniter, låt oss nu försöka göra några ändringar. Vi kommer att skapa vår startsida och ersätta standardsidan

Skapa en ny fil i application/views/home.php

Lägg till följande kod till home.php

<!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>

HÄR,

Ovanstående HTML-kod laddar Burma SSS ramverk och typsnitt från CDN-nätverket skapar ett mycket grundläggande HTML-dokument. Den tillämpar mycket enkel CSS-regel från Burma CSS-ramverk.

Öppna följande URL i din webbläsare: http://localhost:3000/

Du bör kunna se följande

CodeIgniter Routing

Bra, vi har just modifierat hemsidan. Gå vidare, låt oss definiera vår rutt. Låt oss anta att vår applikation också måste kunna visa sidan Om oss.

Skapa en rutt

Öppna ruttfilen application/config.routes.php

Lägg till följande rutt

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

HÄR,

  • När en besökare besöker URL:en /about-us instruerar vi CodeIgniter att leta efter en controller Välkommen och kör metoden about_us.

Skapa en styrenhet

Låt oss nu definiera kontrollmetoden om oss

Öppna applikation/kontroller/Welcome.php

Lägg till följande metod

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

HÄR,

  • Ovanstående kod definierar en funktion about_us och laddar en vy about_us.

Skapa en vy

Låt oss nu skapa vyn som vi just refererade till i avsnittet ovan

Skapa en ny fil about_us.php i application/views/about_us.php

Lägg till följande kod

<!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>

Vi är redo, öppna följande URL i din webbläsare: http://localhost:3000/index.php/about-us

Du kommer att se följande sida

Skapa en vy i CodeIgniter

Om du kan se sidan ovan så grattis, du har framgångsrikt skapat en enkel applikation i CodeIgniter.

Sammanfattning

I den här handledningen täckte vi tre (3) huvudkomponenter som utgör en CodeIgniter-applikation. Vi tittade på rutter och hur man definierar dem, kontroller och hur man skapar metoder som svarar på ruttförfrågningar och skapade enkla vyer som returneras till användarna när de begär en resurs.