Controller CodeIgniter, routing delle viste: impara con l'app di esempio
In questo tutorial imparerai i seguenti argomenti.
- efficiente – il routing è responsabile della risposta alle richieste URL. Il routing abbina l'URL ai percorsi predefiniti. Se non viene trovata alcuna corrispondenza del percorso, CodeIgniter genera un'eccezione per la pagina non trovata.
- Controller – i percorsi sono collegati ai controllori. I controller uniscono insieme i modelli e le viste. La richiesta di dati/logica aziendale dal modello e la restituzione dei risultati nella presentazione della vista. Una volta che un URL è stato abbinato a un percorso, viene inoltrato alla funzione pubblica di un controller. Questa funzione interagisce con l'origine dati, la logica aziendale e restituisce la vista che mostra i risultati.
- Visualizzazioni – Le visualizzazioni sono responsabili della presentazione. Una vista è solitamente una combinazione di HTML, CSS e JavaScript. Questa è la parte responsabile della visualizzazione della pagina web all'utente. In genere, i dati visualizzati vengono solitamente recuperati dal database o da qualsiasi altra fonte di dati disponibile.
Come creare un nuovo progetto CodeIgniter
Utilizzeremo Composer per creare un nuovo progetto. Utilizzerò il server PHP integrato, quindi non è necessario disporre di software aggiuntivo come Apache. In questo tutorial, utilizziamo il file Windows sistema operativo. Pertanto, abbiamo creato una cartella Sites sull'unità C. Puoi utilizzare qualsiasi directory adatta a te.
Aprire la riga di comando/terminale ed eseguire il seguente comando
cd C:\Sites
Ora creeremo un progetto CodeIgniter usando Composer. Esegui il seguente comando
composer create-project CodeIgniter/framework ci-app
QUI,
- Il comando precedente crea un nuovo progetto CodeIgniter versione 3 utilizzando l'ultima versione stabile, ovvero la 3.1.9, in una directory ci-app.
Una volta completato il comando sopra, dovresti essere in grado di ottenere risultati simili ai seguenti nel terminale
Eseguire il seguente comando per passare alla directory del progetto appena creata ci-app
cd ci-app
Avviamo ora il server web integrato in PHP
php -S localhost:3000
QUI,
- Il comando precedente avvia il server PHP integrato in esecuzione sulla porta 3000.
Aprire il browser web e navigare al seguente URL: http://localhost:3000/
Otterrai la seguente pagina
Se riesci a vedere la pagina sopra, congratulazioni, hai installato con successo CodeIgniter.
Come puoi leggere dalla pagina web sopra, la pagina visualizzata sopra è resa dalla vista situata in application/views/welcome_message.php e il controller responsabile si trova in application/controllers/Welcome.php
Instradamento CodeIgniter
Per ora, la nostra applicazione ha un solo URL che è la home page. In questa sezione personalizzeremo la sezione home. Creeremo alcuni nuovi URL che risponderanno alle diverse richieste.
Cominciamo con il percorso della home page
Apri il file dei percorsi come indicato dal percorso seguente
application/config/routes.php
Dovresti essere in grado di vedere il seguente contenuto
$route['default_controller'] = 'welcome'; $route['404_override'] = ''; $route['translate_uri_dashes'] = FALSE;
QUI,
- $route['default_controller'] = 'benvenuto'; definisce il controller predefinito che risponde alle richieste URI
- $percorso['404_override'] = ”; questo percorso consente di definire un percorso personalizzato per gli errori 404. Si verifica un errore 404 quando una pagina non viene trovata. CodeIgniter ha un gestore predefinito per l'errore ma puoi definirne uno tuo se lo desideri.
- $route['translate_uri_dashes'] = FALSO; questa opzione ti consente di tradurre i trattini in caratteri di sottolineatura. Parleremo di questa opzione quando esamineremo come funzionano i percorsi in CodeIgniter.
Diamo ora un'occhiata al metodo del controller responsabile della visualizzazione della home page che abbiamo visto quando abbiamo aperto l'URL http://localhost:3000/
nel browser web.
Aprire il seguente file
application/controllers/Welcome.php
Dovresti essere in grado di vedere il seguente codice
<?php defined('BASEPATH') OR exit('No direct script access allowed'); class Welcome extends CI_Controller { public function index() { $this->load->view('welcome_message'); } }
QUI,
- Definito ('BASEPATH') OR exit('Nessun accesso diretto allo script consentito'); protegge dall'accesso diretto alla classe controller senza passare attraverso il file index.php. Ricorda, nel paradigma MVC tutte le richieste hanno un singolo punto di ingresso e, per CodeIgniter, il suo index.php. Questo codice blocca tutte le richieste che non arrivano tramite index.php
- class Welcome extends CI_Controller {…} definisce una classe Welcome che estende la classe genitore CI_Controller
- la funzione pubblica indice() definisce una funzione pubblica che viene chiamata per impostazione predefinita quando si apre la home page
- $this->load->view('welcome_message'); questa riga carica la vista Welcome_message. Il file Welcome_message si trova nella directory application/views/welcome_message.php
Finora abbiamo solo esplorato ciò che esce dalla scatola con CodeIgniter, ora proviamo a fare qualche modifica. Creeremo la nostra home page e sostituiremo la pagina predefinita
Crea un nuovo file in application/views/home.php
Aggiungere il seguente codice a 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>
QUI,
Il codice HTML sopra carica il framework e il carattere Burma SSS dalla rete CDN per creare un documento HTML molto semplice. Applica una regola CSS molto semplice dal framework CSS birmano.
Apri il seguente URL nel tuo browser: http://localhost:3000/
Dovresti essere in grado di vedere quanto segue
Ottimo, abbiamo appena modificato con successo la home page. Andando avanti, definiamo il nostro percorso. Supponiamo che la nostra applicazione debba essere in grado di mostrare anche la pagina Chi siamo.
Crea un percorso
Apri il file dei percorsi application/config.routes.php
Aggiungi il seguente percorso
$route['about-us'] = 'welcome/about_us';
QUI,
- Quando un visitatore visita l'URL /about-us, stiamo chiedendo a CodeIgniter di cercare un controller Welcome ed eseguire il metodo about_us.
Crea un controllore
Definiamo ora il metodo del controller su di noi
Apri applicazione/controller/Welcome.php
Aggiungere il seguente metodo
public function about_us(){ $this->load->view('about_us'); }
QUI,
- Il codice precedente definisce una funzione about_us e carica una vista about_us.
Crea una vista
Creiamo ora la vista a cui abbiamo appena fatto riferimento nella sezione precedente
Crea un nuovo file about_us.php in application/views/about_us.php
Aggiungere il seguente codice
<!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>
Siamo pronti, apri il seguente URL nel tuo browser web: http://localhost:3000/index.php/about-us
Vedrai la seguente pagina
Se riesci a vedere la pagina sopra, congratulazioni, hai creato con successo una semplice applicazione in CodeIgniter.
Sommario
In questo tutorial abbiamo trattato tre (3) componenti principali che costituiscono un'applicazione CodeIgniter. Abbiamo esaminato le rotte e come definirle, i controller e come creare metodi che rispondano alle richieste delle rotte e creato semplici visualizzazioni che vengono restituite agli utenti quando richiedono una risorsa.