CodeIgniter kontroleri, usmjeravanje prikaza: naučite s primjerom aplikacije
U ovom vodiču ćete naučiti sljedeće teme.
- Usmjeravanje – usmjeravanje je odgovorno za odgovaranje na URL zahtjeve. Usmjeravanje povezuje URL s unaprijed definiranim rutama. Ako tada nije pronađeno podudaranje rute, CodeIgniter izbacuje iznimku Stranica nije pronađena.
- Kontroleri – rute su povezane s kontrolerima. Kontroleri spajaju modele i poglede zajedno. Zahtjev za podacima/poslovnom logikom iz modela i vraćanje rezultata u prezentaciji pogleda. Nakon što je URL usklađen s rutom, prosljeđuje se javnoj funkciji kontrolera. Ova funkcija komunicira s izvorom podataka, poslovnom logikom i vraća pogled koji prikazuje rezultate.
- Posjeta – pogledi su odgovorni za prezentaciju. Pogled je obično kombinacija HTML-a, CSS-a i JavaSkripta. Ovo je dio koji je odgovoran za prikazivanje web stranice korisniku. Tipično, prikazani podaci obično se dohvaćaju iz baze podataka ili bilo kojeg drugog dostupnog izvora podataka.
Kako stvoriti novi CodeIgniter projekt
Koristit ćemo Composer za izradu novog projekta. Koristit ću PHP ugrađeni poslužitelj, tako da nije potrebno imati dodatni softver kao što je apaš. U ovom vodiču koristimo Windows operacijski sustav. Stoga smo stvorili mapu Sites na pogonu C. Možete koristiti bilo koji direktorij koji vam odgovara.
Otvorite naredbeni redak/terminal i pokrenite sljedeću naredbu
cd C:\Sites
Sada ćemo izraditi CodeIgniter projekt koristeći Composer. Pokrenite sljedeću naredbu
composer create-project CodeIgniter/framework ci-app
OVDJE,
- Gornja naredba stvara novi CodeIgniter projekt verzije 3 koristeći najnovije stabilno izdanje, tj. 3.1.9 u ci-aplikaciji direktorija.
Kada se gornja naredba završi, trebali biste moći dobiti rezultate slične sljedećima u terminalu
Pokrenite sljedeću naredbu za pregledavanje novostvorenog direktorija projekta ci-app
cd ci-app
Pokrenimo sada PHP ugrađeni web poslužitelj
php -S localhost:3000
OVDJE,
- Gornja naredba pokreće ugrađeni PHP poslužitelj koji radi na portu 3000.
Otvorite web preglednik i pregledajte sljedeći URL: http://localhost:3000/
Dobit ćete sljedeću stranicu
Ako vidite gornju stranicu, čestitamo, uspješno ste instalirali CodeIgniter.
Kao što možete pročitati na gornjoj web stranici, gore prikazanu stranicu prikazuje prikaz koji se nalazi u aplikaciji/views/welcome_message.php, a odgovorni kontroler nalazi se u aplikaciji/kontroleri/Welcome.php
CodeIgniter usmjeravanje
Za sada naša aplikacija ima samo jedan URL koji je početna stranica. U ovom ćemo odjeljku prilagoditi početni odjeljak. Napravit ćemo neke nove URL-ove koji će odgovoriti na različite zahtjeve.
Počnimo s rutom početne stranice
Otvorite datoteku s rutama kako je naznačeno donjom stazom
application/config/routes.php
Trebali biste moći vidjeti sljedeći sadržaj
$route['default_controller'] = 'welcome'; $route['404_override'] = ''; $route['translate_uri_dashes'] = FALSE;
OVDJE,
- $route['default_controller'] = 'dobrodošli'; definira zadani kontroler koji odgovara na URI zahtjeve
- $route['404_override'] = ”; ova vam ruta omogućuje definiranje prilagođene rute za pogreške 404. Pogreška 404 javlja se kada stranica nije pronađena. CodeIgniter ima zadani rukovatelj greškom, ali možete definirati vlastiti ako želite.
- $route['translate_uri_dashes'] = FALSE; ova vam opcija omogućuje prevođenje crtica u podvlake. O ovoj opciji ćemo govoriti kada budemo gledali kako rute rade u CodeIgniteru.
Pogledajmo sada metodu kontrolera koja je odgovorna za prikaz početne stranice koju smo vidjeli kada smo otvorili URL http://localhost:3000/
u web pregledniku.
Otvorite sljedeću datoteku
application/controllers/Welcome.php
Trebali biste moći vidjeti sljedeći kod
<?php defined('BASEPATH') OR exit('No direct script access allowed'); class Welcome extends CI_Controller { public function index() { $this->load->view('welcome_message'); } }
OVDJE,
- Definirano ('BASEPATH') OR exit('Nije dopušten izravan pristup skripti'); štiti od izravnog pristupa klasi kontrolera bez prolaska kroz datoteku index.php. Zapamtite, u MVC paradigmi svi zahtjevi imaju jednu ulaznu točku, a za CodeIgniter, njen index.php. Ovaj kod blokira sve zahtjeve koji ne dolaze kroz index.php
- klasa Welcome extends CI_Controller {…} definira klasu Welcome koja proširuje nadređenu klasu CI_Controller
- javna funkcija index() definira javnu funkciju koja se poziva prema zadanim postavkama kada otvorite početnu stranicu
- $this->load->view('welcome_message'); ovaj redak učitava prikaz Welcome_message. Datoteka Welcome_message nalazi se u direktoriju application/views/welcome_message.php
Do sada smo samo istraživali što dolazi iz kutije s CodeIgniterom, pokušajmo sada napraviti neke promjene. Napravit ćemo našu početnu stranicu i zamijeniti zadanu stranicu
Napravite novu datoteku u aplikaciji/views/home.php
Dodajte sljedeći kod u 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>
OVDJE,
Gornji HTML kod učitava okvir Burma SSS i font iz CDN mreže stvara vrlo osnovni HTML dokument. Primjenjuje vrlo jednostavno CSS pravilo iz Burma CSS okvira.
Otvorite sljedeći URL u svom pregledniku: http://localhost:3000/
Trebali biste moći vidjeti sljedeće
Odlično, upravo smo uspješno izmijenili početnu stranicu. Idemo dalje, definirajmo našu rutu. Pretpostavimo da naša aplikacija također mora moći prikazati stranicu o nama.
Stvorite rutu
Otvorite datoteku ruta application/config.routes.php
Dodajte sljedeću rutu
$route['about-us'] = 'welcome/about_us';
OVDJE,
- Kada posjetitelj posjeti URL /about-us, upućujemo CodeIgniter da potraži upravljačku dobrodošlicu i izvrši metodu about_us.
Stvorite kontroler
Definirajmo sada metodu kontrolera o nama
Otvorite application/controllers/Welcome.php
Dodajte sljedeću metodu
public function about_us(){ $this->load->view('about_us'); }
OVDJE,
- Gornji kod definira funkciju about_us i učitava prikaz about_us.
Stvorite pogled
Kreirajmo sada pogled koji smo upravo spomenuli u gornjem odjeljku
Napravite novu datoteku about_us.php u aplikaciji/views/about_us.php
Dodajte sljedeći 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>
Spremni smo, otvorite sljedeći URL u svom web pregledniku: http://localhost:3000/index.php/about-us
Vidjet ćete sljedeću stranicu
Ako možete vidjeti gornju stranicu, čestitamo, uspješno ste izradili jednostavnu aplikaciju u CodeIgniteru.
rezime
U ovom vodiču pokrili smo tri (3) glavne komponente koje čine aplikaciju CodeIgniter. Pogledali smo rute i kako ih definirati, kontrolere i kako stvoriti metode koje odgovaraju na zahtjeve rute i stvorili jednostavne poglede koji se vraćaju korisnicima kada zatraže resurs.