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

Creați un nou proiect CodeIgniter

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ă

Creați un nou proiect CodeIgniter

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

Rutarea CodeIgniter

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ă

Creați o vizualizare în CodeIgniter

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ă.