CodeIgniter-controllere, visningsruting: Lær med eksempelapp
I denne tutorial skal du lære følgende emner.
- Routing – routing er ansvarlig for at svare på URL-anmodninger. Routing matcher URL'en til de foruddefinerede ruter. Hvis der ikke findes nogen rutematch, kaster CodeIgniter en side ikke fundet en undtagelse.
- Controllere – ruter er knyttet til controllere. Controllere limer modellerne og visningerne sammen. Anmodningen om data/forretningslogik fra modellen og returnere resultaterne i præsentationen af visningen. Når en URL er blevet matchet til en rute, videresendes den til en controllers offentlige funktion. Denne funktion interagerer med datakilden, forretningslogikken og returnerer den visning, der viser resultaterne.
- Views – synspunkter er ansvarlige for præsentation. En visning er normalt en kombination af HTML, CSS og JavaManuskript. Dette er den del, der er ansvarlig for at vise websiden til brugeren. Typisk hentes de viste data normalt fra databasen eller andre tilgængelige datakilder.
Sådan opretter du et nyt CodeIgniter-projekt
Vi vil bruge Composer til at oprette et nyt projekt. Jeg kommer til at bruge PHP indbygget server, så det er ikke nødvendigt at have ekstra software som f.eks Apache. I denne tutorial bruger vi Windows operativsystem. Derfor har vi oprettet en Sites-mappe på drev C. Du kan bruge enhver mappe, der passer til dig.
Åbn kommandolinjen/terminalen og kør følgende kommando
cd C:\Sites
Vi vil nu oprette et CodeIgniter-projekt ved hjælp af Composer. Kør følgende kommando
composer create-project CodeIgniter/framework ci-app
HER,
- Ovenstående kommando opretter et nyt CodeIgniter-projekt version 3 ved hjælp af den seneste stabile udgivelse, dvs. 3.1.9, til en mappe ci-app.
Når ovenstående kommando er færdig med at køre, bør du kunne opnå resultater svarende til følgende i terminalen
Kør følgende kommando for at gå til den nyoprettede projektmappe ci-app
cd ci-app
Lad os nu starte den indbyggede PHP-webserver
php -S localhost:3000
HER,
- Ovenstående kommando starter den indbyggede PHP-server, der kører på port 3000.
Åbn webbrowseren og gennemse følgende URL: http://localhost:3000/
Du får følgende side
Hvis du kan se ovenstående side, så tillykke, du har med succes installeret CodeIgniter.
Som du kan læse fra ovenstående webside, er siden vist ovenfor gengivet af visningen placeret i application/views/welcome_message.php, og den ansvarlige controller er placeret i application/controllers/Welcome.php
CodeIgniter Routing
Indtil videre har vores applikation kun en enkelt URL, som er startsiden. I denne sektion vil vi tilpasse hjemmesektionen. Vi vil oprette nogle nye URL'er, som vil reagere på de forskellige anmodninger.
Lad os starte med startsidens rute
Åbn rutefilen som angivet af stien nedenfor
application/config/routes.php
Du bør kunne se følgende indhold
$route['default_controller'] = 'welcome'; $route['404_override'] = ''; $route['translate_uri_dashes'] = FALSE;
HER,
- $route['default_controller'] = 'velkommen'; definerer standardcontrolleren, der reagerer på URI-anmodningerne
- $route['404_override'] = ”; denne rute giver dig mulighed for at definere en brugerdefineret rute for 404-fejl. En 404-fejl opstår, når en side ikke findes. CodeIgniter har en standardhandler for fejlen, men du kan definere din egen, hvis du ønsker det.
- $route['translate_uri_dashes'] = FALSK; denne mulighed giver dig mulighed for at oversætte tankestreger til understregninger. Vi vil tale om denne mulighed, når vi ser på, hvordan ruter fungerer i CodeIgniter.
Lad os nu se på controllermetoden, der er ansvarlig for at vise hjemmesiden, som vi så, da vi åbnede URL'en http://localhost:3000/
i webbrowseren.
Åbn følgende fil
application/controllers/Welcome.php
Du burde 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,
- Defineret ('BASEPATH') ELLER exit('Ingen direkte scriptadgang tilladt'); beskytter mod direkte adgang til controller-klassen uden at gå gennem filen index.php. Husk, i MVC-paradigmet har alle anmodninger et enkelt indgangspunkt, og for CodeIgniter er dets index.php. Denne kode blokerer alle anmodninger, der ikke kommer gennem index.php
- klasse Welcome udvider CI_Controller {...} definerer en klasse Welcome, der udvider den overordnede klasse CI_Controller
- public function index() definerer en offentlig funktion, der kaldes som standard, når du åbner hjemmesiden
- $this->load->view('welcome_message'); denne linje indlæser visningen welcome_message. Filen welcome_message er placeret i mappen application/views/welcome_message.php
Indtil videre har vi kun undersøgt, hvad der kommer ud af kassen med CodeIgniter, lad os nu prøve at lave nogle ændringer. Vi opretter vores startside og erstatter standardsiden
Opret en ny fil i application/views/home.php
Tilføj 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,
Ovenstående HTML-kode indlæser Burma SSS-ramme og skrifttype fra CDN-netværket og skaber et meget grundlæggende HTML-dokument. Den anvender en meget enkel CSS-regel fra Burma CSS-ramme.
Åbn følgende URL i din browser: http://localhost:3000/
Du burde kunne se følgende
Godt, vi har lige ændret hjemmesiden. Fortsæt, lad os definere vores rute. Lad os antage, at vores applikation også skal kunne vise siden om os.
Opret en rute
Åbn rutefilen application/config.routes.php
Tilføj følgende rute
$route['about-us'] = 'welcome/about_us';
HER,
- Når en besøgende besøger URL'en /about-us, instruerer vi CodeIgniter om at lede efter en controller Velkommen og udføre metoden about_us.
Opret en controller
Lad os nu definere controller-metoden om os
Åbn applikation/controllere/Welcome.php
Tilføj følgende metode
public function about_us(){ $this->load->view('about_us'); }
HER,
- Ovenstående kode definerer en funktion about_us og indlæser en visning about_us.
Opret en visning
Lad os nu skabe den visning, som vi lige refererede til i ovenstående afsnit
Opret en ny fil about_us.php i application/views/about_us.php
Tilføj 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 klar til at gå, åbn følgende URL i din webbrowser: http://localhost:3000/index.php/about-us
Du vil se den følgende side
Hvis du er i stand til at se ovenstående side, så tillykke, du har med succes oprettet en simpel applikation i CodeIgniter.
Resumé
I denne tutorial dækkede vi tre (3) hovedkomponenter, der udgør en CodeIgniter-applikation. Vi så på ruter, og hvordan man definerer dem, controllere og hvordan man laver metoder, der reagerer på ruteanmodninger og skabte simple visninger, der returneres til brugerne, når de anmoder om en ressource.