Controlere CodeIgniter, rutarea vizualizărilor: învățați cu exemplu de aplicație
În acest tutorial, veți învăța următoarele subiecte.
- Rutare – rutarea este responsabilă pentru răspunsul la solicitările URL. Rutarea potrivește adresa URL cu rutele predefinite. Dacă nu se găsește nicio potrivire de rută, CodeIgniter aruncă o pagină care nu a găsit o excepție.
- Controlere – rutele sunt legate de controlori. Controlerele lipesc modelele și vederile împreună. Cererea de date/logica de afaceri din model și returnarea rezultatelor în prezentarea vederii. Odată ce o adresă URL a fost asociată cu o rută, aceasta este redirecționată către funcția publică a controlorului. Această funcție interacționează cu sursa de date, logica de afaceri și returnează vizualizarea care afișează rezultatele.
- Vizualizări – vizualizările sunt responsabile de prezentare. O vizualizare este de obicei o combinație de HTML, CSS și JavaScenariul. Aceasta este partea responsabilă pentru afișarea paginii web către utilizator. De obicei, datele afișate sunt de obicei preluate din baza de date sau din orice alte surse de date disponibile.
Cum se creează un nou proiect CodeIgniter
Vom folosi Composer pentru a crea un nou proiect. Voi folosi serverul PHP încorporat, deci nu este necesar să am software suplimentar, cum ar fi Apache. În acest tutorial, folosim Windows sistem de operare. Prin urmare, am creat un folder Site-uri pe unitatea C. Puteți utiliza orice director care vi se potrivește.
Deschideți linia de comandă/terminalul și rulați următoarea comandă
cd C:\Sites
Acum vom crea un proiect CodeIgniter folosind Composer. Rulați următoarea comandă
composer create-project CodeIgniter/framework ci-app
AICI,
- Comanda de mai sus creează un nou proiect CodeIgniter versiunea 3 folosind cea mai recentă versiune stabilă, adică 3.1.9 într-un director ci-app.
Când comanda de mai sus s-a încheiat, ar trebui să puteți obține rezultate similare cu următoarele în terminal
Rulați următoarea comandă pentru a naviga la directorul de proiect nou creat ci-app
cd ci-app
Să începem acum serverul web încorporat PHP
php -S localhost:3000
AICI,
- Comanda de mai sus pornește serverul PHP încorporat care rulează pe portul 3000.
Deschideți browserul web și răsfoiți următoarea adresă URL: http://localhost:3000/
Veți primi următoarea pagină
Dacă puteți vedea pagina de mai sus, felicitări, ați instalat cu succes CodeIgniter.
După cum puteți citi din pagina web de mai sus, pagina afișată mai sus este redată de vizualizarea situată în application/views/welcome_message.php, iar controlorul responsabil este localizat în application/controllers/Welcome.php
Rutarea CodeIgniter
Pentru moment, aplicația noastră are doar o singură adresă URL, care este pagina de pornire. În această secțiune, vom personaliza secțiunea de pornire. Vom crea câteva adrese URL noi care vor răspunde diferitelor solicitări.
Să începem cu traseul paginii de pornire
Deschideți fișierul rute așa cum este indicat de calea de mai jos
application/config/routes.php
Ar trebui să puteți vedea următorul conținut
$route['default_controller'] = 'welcome'; $route['404_override'] = ''; $route['translate_uri_dashes'] = FALSE;
AICI,
- $route['default_controller'] = 'bine ai venit'; definește controlerul implicit care răspunde la solicitările URI
- $route['404_override'] = ”; această rută vă permite să definiți o rută personalizată pentru erori 404. O eroare 404 apare atunci când o pagină nu este găsită. CodeIgniter are un handler implicit pentru eroare, dar vă puteți defini pe al dvs. dacă doriți.
- $route['translate_uri_dashes'] = FALS; această opțiune vă permite să traduceți liniuțele în liniuțe de subliniere. Vom vorbi despre această opțiune când ne uităm la modul în care funcționează rutele în CodeIgniter.
Să ne uităm acum la metoda controlerului responsabilă pentru afișarea paginii de pornire pe care am văzut-o când am deschis adresa URL http://localhost:3000/
în browserul web.
Deschideți următorul fișier
application/controllers/Welcome.php
Ar trebui să puteți vedea următorul cod
<?php defined('BASEPATH') OR exit('No direct script access allowed'); class Welcome extends CI_Controller { public function index() { $this->load->view('welcome_message'); } }
AICI,
- Definit ('BASEPATH') SAU exit('Nu este permis accesul direct la script'); protejează împotriva accesării directe a clasei controller fără a trece prin fișierul index.php. Amintiți-vă, în paradigma MVC toate cererile au un singur punct de intrare, iar pentru CodeIgniter, index.php. Acest cod blochează toate cererile care nu vin prin index.php
- clasa Welcome extinde CI_Controller {…} definește o clasă Welcome care extinde clasa părinte CI_Controller
- funcția publică index() definește o funcție publică care este apelată implicit când deschideți pagina de pornire
- $this->load->view('welcome_message'); această linie încarcă vizualizarea mesaj de întâmpinare. Fișierul welcome_message se află în directorul application/views/welcome_message.php
Până acum, am explorat doar ceea ce iese din cutie cu CodeIgniter, acum să încercăm să facem câteva modificări. Vom crea pagina noastră de pornire și vom înlocui pagina implicită
Creați un fișier nou în application/views/home.php
Adăugați următorul cod la 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>
AICI,
Codul HTML de mai sus încarcă cadrul Burma SSS și fontul din rețeaua CDN creează un document HTML de bază. Se aplică o regulă CSS foarte simplă din cadrul Burma CSS.
Deschideți următoarea adresă URL în browser: http://localhost:3000/
Ar trebui să puteți vedea următoarele
Grozav, tocmai am modificat cu succes pagina de pornire. Mergând mai departe, să ne definim traseul. Să presupunem că aplicația noastră trebuie, de asemenea, să poată afișa pagina despre noi.
Creați un traseu
Deschideți fișierul rute application/config.routes.php
Adăugați următorul traseu
$route['about-us'] = 'welcome/about_us';
AICI,
- Când un vizitator vizitează adresa URL /about-us, îi instruim CodeIgniter să caute un controler Bun venit și să execute metoda about_us.
Creați un controler
Să definim acum metoda controlerului despre noi
Deschideți aplicația/controlere/Welcome.php
Adăugați următoarea metodă
public function about_us(){ $this->load->view('about_us'); }
AICI,
- Codul de mai sus definește o funcție about_us și încarcă o vizualizare about_us.
Creați o vizualizare
Să creăm acum vizualizarea la care tocmai am făcut referire în secțiunea de mai sus
Creați un fișier nou about_us.php în application/views/about_us.php
Adăugați următorul cod
<!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>
Suntem gata, deschideți următoarea adresă URL în browserul dvs. web: http://localhost:3000/index.php/about-us
Veți vedea următoarea pagină
Dacă puteți vedea pagina de mai sus, felicitări, ați creat cu succes o aplicație simplă în CodeIgniter.
Rezumat
În acest tutorial, am acoperit trei (3) componente majore care alcătuiesc o aplicație CodeIgniter. Am analizat rutele și cum să le definim, controlere și cum să creăm metode care să răspundă la solicitările de rută și am creat vederi simple care sunt returnate utilizatorilor atunci când solicită o resursă.