CodeIgniteri kontrollerid, vaadete marsruutimine: õppige näiterakendusega
Selles õpetuses õpite järgmisi teemasid.
- Marsruut – marsruutimine vastutab URL-i päringutele vastamise eest. Marsruutimine sobitab URL-i eelnevalt määratletud marsruutidega. Kui marsruudi vastet ei leita, viskab CodeIgniter lehe ei leitud erandit.
- Kontrollerid – marsruudid on seotud kontrolleritega. Kontrollerid liimivad mudelid ja vaated kokku. Andmete/äriloogika päring mudelilt ja tulemused tagasi vaate esitluses. Kui URL on marsruudiga sobitatud, edastatakse see kontrolleri avalikule funktsioonile. See funktsioon suhtleb andmeallika, äriloogikaga ja tagastab tulemusi kuvava vaate.
- views – esitlemise eest vastutavad vaated. Vaade on tavaliselt kombinatsioon HTML-ist, CSS-ist ja JavaSkript. See osa vastutab veebilehe kasutajale kuvamise eest. Tavaliselt tuuakse kuvatavad andmed tavaliselt andmebaasist või muudest saadaolevatest andmeallikatest.
Kuidas luua uut CodeIgniteri projekti
Kasutame uue projekti loomiseks Composerit. Ma kasutan PHP sisseehitatud serverit, seega pole vaja lisatarkvara, näiteks Apache. Selles õpetuses kasutame Windows operatsioonisüsteem. Seetõttu oleme loonud draivile C kausta Sites. Võite kasutada mis tahes teile sobivat kataloogi.
Avage käsurida/terminal ja käivitage järgmine käsk
cd C:\Sites
Loome nüüd Composeri abil CodeIgniteri projekti. Käivitage järgmine käsk
composer create-project CodeIgniter/framework ci-app
SIIN,
- Ülaltoodud käsk loob uue CodeIgniteri projekti versiooni 3, kasutades uusimat stabiilset väljalaset, st versiooni 3.1.9, kataloogi ci-app.
Kui ülaltoodud käsk on töötamise lõpetanud, peaksite terminalis saama järgmisega sarnaseid tulemusi
Käivitage järgmine käsk, et sirvida vastloodud projektikataloogi ci-app
cd ci-app
Käivitame nüüd PHP sisseehitatud veebiserveri
php -S localhost:3000
SIIN,
- Ülaltoodud käsk käivitab sisseehitatud PHP-serveri, mis töötab pordis 3000.
Avage veebibrauser ja sirvige järgmist URL-i: http://localhost:3000/
Saate järgmise lehe
Kui näete ülaltoodud lehte, siis õnnitleme, installimine õnnestus CodeIgniter.
Nagu ülaltoodud veebilehelt võib lugeda, renderdab ülal kuvatud leht vaade, mis asub failis application/views/welcome_message.php ja vastutav kontroller asub aadressil application/controllers/Welcome.php
CodeIgniteri marsruutimine
Praegu on meie rakendusel ainult üks URL, mis on avaleht. Selles jaotises kohandame kodu jaotist. Loome mõned uued URL-id, mis vastavad erinevatele päringutele.
Alustame kodulehe marsruudiga
Avage marsruudifail, nagu on näidatud alloleval teel
application/config/routes.php
Peaksite nägema järgmist sisu
$route['default_controller'] = 'welcome'; $route['404_override'] = ''; $route['translate_uri_dashes'] = FALSE;
SIIN,
- $route['default_controller'] = 'tere tulemast'; määrab vaikekontrolleri, mis vastab URI päringutele
- $route['404_override'] = ”; see marsruut võimaldab määrata kohandatud marsruudi 404 vigade jaoks. Kui lehte ei leita, ilmneb tõrge 404. CodeIgniteril on tõrke jaoks vaikekäsitleja, kuid soovi korral saate ise määrata.
- $route['translate_uri_dashes'] = VÄÄR; see suvand võimaldab tõlkida kriipsud alakriipsudeks. Räägime sellest valikust, kui vaatame, kuidas marsruudid CodeIgniteris töötavad.
Vaatame nüüd kontrolleri meetodit, mis vastutab avalehe kuvamise eest, mida nägime URL-i avamisel http://localhost:3000/
veebibrauseris.
Avage järgmine fail
application/controllers/Welcome.php
Peaksite nägema järgmist koodi
<?php defined('BASEPATH') OR exit('No direct script access allowed'); class Welcome extends CI_Controller { public function index() { $this->load->view('welcome_message'); } }
SIIN,
- Defined ('BASEPATH') VÕI exit('Otsene skripti juurdepääs pole lubatud'); kaitseb kontrolleriklassile otsese juurdepääsu eest ilma index.php faili läbimata. Pidage meeles, et MVC paradigmas on kõigil päringutel üks sisenemispunkt ja CodeIgniteri puhul selle index.php. See kood blokeerib kõik päringud, mis ei tule läbi index.php
- klass Tere tulemast laiendab CI_Controller {…} määratleb klassi Tere tulemast, mis laiendab põhiklassi CI_Controller
- public function index() määrab avaliku funktsiooni, mis avalehe avamisel vaikimisi välja kutsutakse
- $this->load->view('welcome_message'); see rida laadib vaate welcome_message. Fail welcome_message asub kataloogis application/views/welcome_message.php
Seni oleme CodeIgniteriga ainult uurinud, mis karbist välja tuleb, proovime nüüd teha mõned muudatused. Loome oma kodulehe ja asendame vaikelehe
Looge failis application/views/home.php uus fail
Lisage saidile home.php järgmine kood
<!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>
SIIN,
Ülaltoodud HTML-kood laadib Burma SSS-i raamistiku ja fondi CDN-võrgust loob väga lihtsa HTML-dokumendi. See rakendab väga lihtsat CSS-i reeglit Birma CSS-i raamistikust.
Avage oma brauseris järgmine URL: http://localhost:3000/
Peaksite nägema järgmist
Suurepärane, oleme just edukalt kodulehte muutnud. Liikudes edasi, määratleme oma marsruudi. Oletame, et meie rakendus peab näitama ka meie kohta käivat lehte.
Loo marsruut
Avage marsruudifail application/config.routes.php
Lisage järgmine marsruut
$route['about-us'] = 'welcome/about_us';
SIIN,
- Kui külastaja külastab URL-i /about-us, anname CodeIgniterile korralduse otsida kontrollerit Tere tulemast ja käivitada meetod about_us.
Loo kontroller
Defineerime nüüd meie jaoks kasutatava kontrolleri meetodi
Avage rakendus/kontrollerid/Welcome.php
Lisage järgmine meetod
public function about_us(){ $this->load->view('about_us'); }
SIIN,
- Ülaltoodud kood määratleb funktsiooni about_us ja laadib vaate about_us.
Looge vaade
Loome nüüd vaate, millele just ülaltoodud jaotises viitasime
Looge failis application/views/about_us.php uus fail about_us.php
Lisage järgmine kood
<!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>
Oleme valmis, avage oma veebibrauseris järgmine URL: http://localhost:3000/index.php/about-us
Näete järgmist lehte
Kui näete ülaltoodud lehte, siis õnnitleme, olete CodeIgniteris edukalt loonud lihtsa rakenduse.
kokkuvõte
Selles õpetuses käsitlesime kolme (3) peamist komponenti, mis moodustavad CodeIgniteri rakenduse. Vaatasime marsruute ja nende määratlemist, kontrollereid ja meetodeid, mis vastavad marsruudipäringutele, ning lõime lihtsaid vaateid, mis tagastatakse kasutajatele, kui nad ressurssi taotlevad.