CodeControlere Igniter, Rutare Vizualizări: Învățați cu Exemple

⚡ Rezumat inteligent

Aceasta CodeUn exemplu Igniter construiește o mică aplicație pentru a arăta cum funcționează împreună rutarea, controlerele și vizualizările. Un nou proiect este creat cu Composer, harta rutelor. URLs către metodele controlerului, iar fiecare metodă încarcă o vizualizare care returnează cod HTML browserului.

  • 🧭 rutare: Rutele se potrivesc cu URL la o metodă de control și o metodă nepotrivită URL generează o eroare pagină negăsită.
  • 🎛️ Controllers: O metodă de controller răspunde la o rută, solicită date și returnează o vizualizare.
  • 🖼️ Vizualizari: O vizualizare combină HTML, CSS și JavaScript pentru prezentarea rezultatului utilizatorului.
  • 📦 Configurare proiect: Composer creează proiectul, iar serverul PHP încorporat îl rulează local.
  • 🏠 Rută implicită: `default_controller` setează pagina principală, iar `404_override` setează o pagină de eroare personalizată.
  • ➕ Rută personalizată: O rută precum about-us se mapează la metoda about_us a controlerului Welcome.
  • 🔁 Flux complet: URL pentru a direcționa către controler pentru vizualizare, apoi HTML înapoi către browser.

CodeControlere și vizualizări Igniter

În acest tutorial, veți învăța următoarele subiecte:

  • Rutare – rutarea este responsabilă pentru răspunsul la URL cereri. Rutarea se potrivește cu URL la rutele predefinite. Dacă nu se găsește nicio potrivire de rută, CodeIgniter generează o excepție de tip pagină negăsită.
  • Controlere – rutele sunt legate de controlere. Controlerele leagă modelele și vizualizările împreună. Acestea solicită date și logică de business de la model și returnează rezultatele în prezentarea vizualizării. Odată ce un URL După ce a fost asociată cu o rută, aceasta este redirecționată către o funcție publică a controlerului. Această funcție interacționează cu sursa de date și logica de business ș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 JavaScript. Această parte este responsabilă pentru afișarea paginii web către utilizator. De obicei, datele afișate sunt preluate din baza de date sau dintr-o altă sursă de date disponibilă.

Cum se creează un nou CodeProiectul Igniter

Vom folosi Composer pentru a crea un proiect nou. Vom folosi serverul PHP încorporat, deci nu este necesar să avem software suplimentar, cum ar fi ApacheÎn acest tutorial, folosim Windows sistem de operare, așa că am creat un folder Sites pe unitatea C. Puteți utiliza orice director potrivit pentru dvs.

Deschideți linia de comandă sau terminalul și executați următoarea comandă:

cd C:\Sites

Acum vom crea un CodeProiectul Igniter folosind Composer. Executați următoarea comandă:

composer create-project CodeIgniter/framework ci-app

Aici:

  • Comanda de mai sus creează un nou CodeProiectul Igniter versiunea 3, folosind cea mai recentă versiune stabilă (3.1.9 la momentul scrierii), într-un director numit ci-app.

Când comanda s-a terminat de executat, ar trebui să vedeți rezultate similare cu următoarele în terminal:

Compozitor care creează un nou CodeProiectul Igniter

Executați următoarea comandă pentru a naviga la directorul de proiect ci-app nou creat:

cd ci-app

Acum porniți serverul web încorporat în 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 navigați la următoarele URL: http://localhost:3000/. Veți obține următoarea pagină:

CodePagina de bun venit implicită a Igniter

Dacă puteți vedea pagina de mai sus, felicitări, ați instalat cu succes CodeigniterPagina este randată de vizualizarea situată în application/views/welcome_message.php, iar controlorul responsabil se află în application/controllers/Welcome.php.

CodeRutarea aprinderii

Deocamdată, aplicația noastră are o singură URL, care este pagina principală. În această secțiune, vom personaliza secțiunea principală și vom crea câteva noi URLcare răspund la diferite solicitări.

Să începem cu ruta către pagina principală. Deschideți fișierul rutelor la calea de mai jos:

application/config/routes.php

Ar trebui să vedeți următorul conținut:

$route['default_controller'] = 'welcome';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;

Aici:

  • $route['default_controller'] = 'welcome'; definește controlerul implicit care răspunde la cererile URI.
  • `$route['404_override'] = ”;` vă permite să definiți o rută personalizată pentru erorile 404. O eroare 404 apare atunci când o pagină nu este găsită. CodeIgniter are un handler implicit pentru eroare, dar puteți defini propriul handler dacă doriți.
  • $route['translate_uri_dashes'] = FALSE; vă permite să convertiți cratimele în sublinieri. Vom discuta această opțiune când vom analiza cum funcționează rutele în CodeAprindere.

Să analizăm acum metoda controlerului responsabilă de afișarea paginii principale pe care am văzut-o când am deschis http://localhost:3000/Deschideți următorul fișier:

application/controllers/Welcome.php

Ar trebui să vedeți 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:

  • defined('BASEPATH') OR 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. În paradigma MVC, toate cererile au un singur punct de intrare, care pentru CodeIgniter este index.php. Acest cod blochează toate cererile care nu vin prin index.php.
  • class Welcome extends CI_Controller {…} definește o clasă Welcome care extinde clasa părinte CI_Controller.
  • Funcția public function index() definește o funcție publică care este apelată în mod implicit la deschiderea paginii principale.
  • `$this->load->view('welcome_message');` încarcă vizualizarea `welcome_message`, care se află în `application/views/welcome_message.php`.

Până acum am explorat doar ce vine din cutie cu CodeIgniter. Să facem acum câteva modificări. Vom crea propria noastră pagină principală și vom înlocui pagina implicită. Creați un fișier nou la application/views/home.php și 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>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ă framework-ul CSS Bulma și Font Awesome dintr-o rețea CDN și creează un document HTML foarte simplu. Aplică o regulă CSS simplă din framework-ul CSS Bulma.

Deschideți următoarele URL în browserul dvs.: http://localhost:3000/. Ar trebui să vedeți următoarele:

pachet personalizat CodePagina principală Igniter

Excelent, am modificat cu succes pagina principală. Continuând, să definim ruta. Să presupunem că aplicația noastră trebuie să afișeze și o pagină „Despre noi”.

Creați un traseu

Deschideți fișierul de rute application/config/routes.php și adăugați următoarea rută:

$route['about-us'] = 'welcome/about_us';

Aici:

  • Când un vizitator vizitează URL /despre-noi, instruim CodeIgniter pentru a căuta un controller Welcome și a executa metoda about_us.

Creați un controler

Să definim acum metoda controllerului about_us. Deschideți application/controllers/Welcome.php și 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. Creați un fișier nou about_us.php în application/views/about_us.php și 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ătoarele URL în browserul tău web: http://localhost:3000/index.php/about-us. Veți vedea următoarea pagină:

CodePagina Igniter despre noi

Dacă puteți vedea pagina de mai sus, felicitări, ați creat cu succes o aplicație simplă în CodeAprindere.

Întrebări frecvente

O intrare de rută mapează o URL segment către un controler și o metodă, cum ar fi „welcome/about_us”. Când acel URL se solicită, CodeIgniter rulează metoda numită, care încarcă și returnează o vizualizare.

Setează controlerul care gestionează adresa rădăcină a site-ului atunci când nu există nicio adresă specifică URL este dat. În exemplu, „welcome” înseamnă că pagina principală este servită de metoda index a controlerului Welcome.

Nu. Serverul PHP încorporat, pornit cu comanda php -S localhost:3000, este suficient pentru a rula exemplul local. Apache sau Nginx sunt necesare doar pentru o implementare de producție.

Da. Din descrierea unei pagini, inteligența artificială poate scrie intrarea rutei, metoda controlerului și o vizualizare corespunzătoare, keeping nume consistente. Verificați căile în raport cu dvs. CodeVersiunea cu aprindere.

Acest exemplu folosește CodeIgniter 3, care stochează controllere și vizualizări în application/. CodeIgniter 4 a restructurat directoarele și spațiile de nume, astfel încât căile și sintaxa diferă în proiectele mai noi.

Rezumați această postare cu: