Dicembre 21, 2021

Pagine statiche¶

Nota: questo tutorial presuppone che tu abbia scaricato CodeIgniter e installato il framework nell’ambiente di sviluppo.

La prima cosa che si sta andando a fare è impostare un controller per handlestatic pagine. Un controller è semplicemente una classe che aiuta a delegare work.It è il collante della tua applicazione web.

Ad esempio, quando viene effettuata una chiamata a:

Potremmo immaginare che ci sia un controller chiamato “news”. Il methodbeing chiamato sulle notizie sarebbe “ultimo”. Il lavoro del metodo news potrebbe essere tograb 10 notizie e renderle sulla pagina. Molto spesso in MVC, vedrai modelli di URL che corrispondono:

Poiché gli schemi URL diventano più complessi, questo potrebbe cambiare. Ma per ora, questo è tutto ciò che avremo bisogno di sapere.

Crea un file in applicazione / controller / Pagine.php con il seguente codice.

<?phpclass Pages extends CI_Controller { public function view($page = 'home') { }}

È stata creata una classe denominata Pages, con un metodo di visualizzazione che accetta un argomento denominato $page. La classe Pages sta estendendo la classeCI_Controller. Ciò significa che la nuova classe pages può accederemetodi e variabili definiti nella classe CI_Controller (system/core/Controller.PHP).

Il controller è quello che diventerà il centro di ogni richiesta toyour applicazione web. Nelle discussioni CodeIgniter molto tecniche, forse indicato come il super oggetto. Come ogni classe php, ti riferisci ait all’interno dei tuoi controller come $this. Fare riferimento a $this è comecaricherai librerie, viste e generalmente comanderai il framework.

Ora hai creato il tuo primo metodo, è il momento di creare alcune pagine di base. Creeremo due “viste” (modelli di pagina) che fungono da piè di pagina e intestazione.

Crea l’intestazione in application / views/templates / header.php e aggiungereil seguente codice:

<html> <head> <title>CodeIgniter Tutorial</title> </head> <body> <h1><?php echo $title; ?></h1>

L’intestazione contiene il codice HTML di base che si desidera visualizzare prima di caricare la vista principale, insieme a un’intestazione. Produrrà anche la variabile $title, che definiremo più avanti nel controller.Ora, crea un piè di pagina in applicazione / viste/modelli / piè di pagina.php cheinclude il seguente codice:

 <em>&copy; 2015</em> </body></html>

Aggiunta della logica al controller¶

In precedenza è stato impostato un controller con un metodo view(). Il metodoaccetta un parametro, che è il nome della pagina da caricare. I modelli di pagina static si trovano nella directory application / views / pages/.

In quella directory, creare due file denominati home.php e circa.PHP.All’interno di questi file, digita del testo − tutto ciò che desideri − e salvali.Se ti piace essere particolarmente non originale, prova ” Hello World!”.

Per caricare quelle pagine, dovrai verificare se la pagina richiesta esiste effettivamente:

public function view($page = 'home'){ if ( ! file_exists(APPPATH.'views/pages/'.$page.'.php')) { // Whoops, we don't have a page for that! show_404(); } $data = ucfirst($page); // Capitalize the first letter $this->load->view('templates/header', $data); $this->load->view('pages/'.$page, $data); $this->load->view('templates/footer', $data);}

Ora, quando la pagina esiste, viene caricata, inclusa l’intestazione andfooter, e visualizzata all’utente. Se la pagina non esiste, viene visualizzato un errore “404Page not found”.

La prima riga di questo metodo controlla se la pagina esiste effettivamente.La funzione nativa file_exists() di PHP viene utilizzata per verificare se il fileis è dove dovrebbe essere. show_404() è un CodeIgniterfunction incorporato che rende la pagina di errore predefinita.

Nel modello di intestazione, la variabile $title è stata utilizzata per personalizzare il titolo della pagina. Il valore di title è definito in questo metodo, ma invece diassegnare il valore a una variabile, viene assegnato all’elemento title nell’array $data.

L’ultima cosa che deve essere fatta è caricare le viste nell’orderthey dovrebbero essere visualizzati. Il secondo parametro nel metodo view() èutilizzato per passare valori alla vista. Ogni valore nell’array $data èassegnato a una variabile con il nome della sua chiave. Quindi il valore di$data nel controller è equivalente a $title in theview.

Routing¶

Il controller è ora funzionante! Punta il tuo browser aindex.php/pages/view per vedere la tua pagina. Quando visitiindex.php/pages/view/about vedrai la pagina about, includendo nuovamente l’intestazione e il piè di pagina.

Utilizzando le regole di routing personalizzate, si ha il potere di mappare qualsiasi URI a anycontroller e metodo e liberarsi dalla normale convenzione:http://example.com///

Facciamolo. Apri il file di routing che si trova aapplicazione/config / routes.php e aggiungere le seguenti due righe.Rimuovi tutto l’altro codice che imposta qualsiasi elemento nell’array $route.

$route = 'pages/view';$route = 'pages/view/';

CodeIgniter legge le sue regole di routing dall’alto verso il basso e instrada therequest alla prima regola di corrispondenza. Ogni regola è un’espressione regolare(lato sinistro) mappata a un controller e al nome del metodo separati da barre (lato destro). Quando arriva una richiesta, CodeIgniter cerca il firstmatch e chiama il controller e il metodo appropriati, possibilmente witharguments.

Ulteriori informazioni sul routing possono essere trovate nell’URI Routingdocumentation.

Qui, la seconda regola nell’array $routecorrisponde a qualsiasi richiestausando la stringa jolly (:any). e passa il parametro al metodoview() della classe Pages.

Ora visita index.php/about. È stato instradato correttamente al metodo view() nel controller delle pagine? Fantastico!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.