CodeIgniter-kontrollere, visningsruting: Lær med eksempelapp

I denne opplæringen skal du lære følgende emner.

  • Routing – ruting er ansvarlig for å svare på URL-forespørsler. Ruting matcher URL-en til de forhåndsdefinerte rutene. Hvis ingen rutematch blir funnet, kaster CodeIgniter en side som ikke ble funnet et unntak.
  • Controllers – ruter er knyttet til kontrollere. Kontrollere limer modellene og visningene sammen. Forespørsel om data/forretningslogikk fra modellen og returnere resultatene i presentasjonen av visningen. Når en URL har blitt matchet til en rute, videresendes den til en kontrollers offentlige funksjon. Denne funksjonen samhandler med datakilden, forretningslogikken og returnerer visningen som viser resultatene.
  • Visninger – synspunkter er ansvarlige for presentasjon. En visning er vanligvis en kombinasjon av HTML, CSS og JavaManus. Dette er den delen som er ansvarlig for å vise nettsiden til brukeren. Vanligvis hentes dataene som vises vanligvis fra databasen eller andre tilgjengelige datakilder.

Hvordan lage et nytt CodeIgniter-prosjekt

Vi vil bruke Composer til å lage et nytt prosjekt. Jeg skal bruke PHP innebygd server, så det er ikke nødvendig å ha ekstra programvare som f.eks Apache. I denne opplæringen bruker vi Windows operativsystem. Derfor har vi opprettet en Sites-mappe på stasjon C. Du kan bruke hvilken som helst katalog som passer for deg.

Åpne kommandolinjen/terminalen og kjør følgende kommando

cd C:\Sites

Vi vil nå lage et CodeIgniter-prosjekt ved hjelp av Composer. Kjør følgende kommando

composer create-project CodeIgniter/framework ci-app

HER,

  • Kommandoen ovenfor oppretter et nytt CodeIgniter-prosjekt versjon 3 ved å bruke den siste stabile utgivelsen, dvs. 3.1.9, til en katalog ci-app.

Når kommandoen ovenfor er fullført, bør du kunne oppnå resultater som ligner på følgende i terminalen

Opprett et nytt CodeIgniter-prosjekt

Kjør følgende kommando for å bla til den nyopprettede prosjektkatalogen ci-app

cd ci-app

La oss nå starte den innebygde PHP-nettserveren

 php -S localhost:3000

HER,

  • Kommandoen ovenfor starter den innebygde PHP-serveren som kjører på port 3000.

Åpne nettleseren og bla gjennom følgende URL: http://localhost:3000/

Du får opp følgende side

Opprett et nytt CodeIgniter-prosjekt

Hvis du kan se siden ovenfor, så gratulerer, du har installert CodeIgniter.

Som du kan lese fra nettsiden ovenfor, er siden som vises ovenfor gjengitt av visningen som ligger i application/views/welcome_message.php og den ansvarlige kontrolleren er plassert i application/controllers/Welcome.php

CodeIgniter-ruting

Foreløpig har applikasjonen vår bare en enkelt URL som er hjemmesiden. I denne delen vil vi tilpasse hjemmedelen. Vi vil opprette noen nye nettadresser som vil svare på de forskjellige forespørslene.

La oss starte med startsideruten

Åpne rutefilen som angitt av stien nedenfor

application/config/routes.php

Du bør kunne se følgende innhold

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

HER,

  • $route['default_controller'] = 'velkommen'; definerer standardkontrolleren som svarer på URI-forespørslene
  • $route['404_override'] = ”; denne ruten lar deg definere en egendefinert rute for 404-feil. En 404-feil oppstår når en side ikke blir funnet. CodeIgniter har en standardbehandler for feilen, men du kan definere din egen hvis du ønsker det.
  • $route['translate_uri_dashes'] = FALSKT; dette alternativet lar deg oversette bindestreker til understrekinger. Vi vil snakke om dette alternativet når vi ser på hvordan ruter fungerer i CodeIgniter.

La oss nå se på kontrollermetoden som er ansvarlig for å vise hjemmesiden som vi så da vi åpnet URL-en http://localhost:3000/ i nettleseren.

Åpne følgende fil

application/controllers/Welcome.php

Du skal kunne se følgende kode

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

class Welcome extends CI_Controller {

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

HER,

  • Definert ('BASEPATH') OR exit('Ingen direkte skripttilgang tillatt'); beskytter mot direkte tilgang til kontrollerklassen uten å gå gjennom index.php-filen. Husk at i MVC-paradigmet har alle forespørsler et enkelt inngangspunkt, og for CodeIgniter, dens index.php. Denne koden blokkerer alle forespørsler som ikke kommer gjennom index.php
  • klasse Velkommen utvider CI_Controller {...} definerer en klasse Velkommen som utvider den overordnede klassen CI_Controller
  • public function index() definerer en offentlig funksjon som kalles opp som standard når du åpner hjemmesiden
  • $this->load->view('welcome_message'); denne linjen laster visningen welcome_message. Filen welcome_message ligger i katalogen application/views/welcome_message.php

Så langt har vi bare utforsket hva som kommer ut av esken med CodeIgniter, la oss nå prøve å gjøre noen endringer. Vi vil opprette vår hjemmeside og erstatte standardsiden

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

Legg til følgende kode til 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>

HER,

Ovennevnte HTML-kode laster Burma SSS-rammeverk og font fra CDN-nettverket skaper et veldig grunnleggende HTML-dokument. Den bruker veldig enkel CSS-regel fra Burma CSS-rammeverket.

Åpne følgende URL i nettleseren din: http://localhost:3000/

Du bør kunne se følgende

CodeIgniter-ruting

Flott, vi har nettopp endret hjemmesiden. Gå videre, la oss definere ruten vår. La oss anta at applikasjonen vår også må kunne vise om oss-siden.

Lag en rute

Åpne rutefilen application/config.routes.php

Legg til følgende rute

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

HER,

  • Når en besøkende besøker URL-en /om-oss, ber vi CodeIgniter om å se etter en kontroller Velkommen og utføre metoden about_us.

Opprett en kontroller

La oss nå definere kontrollermetoden om oss

Åpne applikasjon/kontrollere/Welcome.php

Legg til følgende metode

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

HER,

  • Koden ovenfor definerer en funksjon about_us og laster en visning about_us.

Opprett en visning

La oss nå lage visningen som vi nettopp refererte til i delen ovenfor

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

Legg til følgende kode

<!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 er klare til å gå, åpne følgende URL i nettleseren din: http://localhost:3000/index.php/about-us

Du vil se følgende side

Opprett en visning i CodeIgniter

Hvis du er i stand til å se siden ovenfor, så gratulerer, du har opprettet en enkel applikasjon i CodeIgniter.

Oppsummering

I denne opplæringen dekket vi tre (3) hovedkomponenter som utgjør en CodeIgniter-applikasjon. Vi så på ruter og hvordan man definerer dem, kontrollere og hvordan man lager metoder som svarer på ruteforespørsler og laget enkle visninger som returneres til brukerne når de ber om en ressurs.