Strumenti Utente

Strumenti Sito


programmazione:php:rotte_personalizzate

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Entrambe le parti precedenti la revisione Revisione precedente
Prossima revisione
Revisione precedente
programmazione:php:rotte_personalizzate [02/03/2022 - 13:59]
Fabio Di Matteo
programmazione:php:rotte_personalizzate [23/08/2023 - 16:54]
Fabio Di Matteo
Linea 1: Linea 1:
 ====== Rotte personalizzate in PHP ====== ====== Rotte personalizzate in PHP ======
-Autore: **//Fabio Di Matteo//** \\ Ultima revisione: ​ **//  ​22/02/2022  ​- ​10:20   //**  // //+Autore: **//Fabio Di Matteo//** \\ Ultima revisione: ​ **//  ​23/08/2023  ​- ​16:40   //**  // //
  
-<note tip>Non funziona. Non funzionano post e get</​note>​ 
  
-Anche in php e apache è possibile ottenere ​delle rotte personalizzate. ​Ecco come\\+Trovata questa classe che permette di specificare ​delle rotte personalizzate ​in php ([[https://​github.com/​bramus/​router/​tree/​master|Bramus Router]]) ​Mostro brevemente l'​utilizzo.
  
-Per rotte prsonalizzate intendiamo qualcosa come per esempio **https://www.miosito.it/homepage** .+<code php> 
 +<?php 
 +https://github.com/​bramus/​router/​tree/​master 
 +  
 + require_once __DIR__ ​'/​Router.php';​ 
 +  
 + // Create a Router 
 +    $router = new \Bramus\Router\Router();​ 
 +     
 +     
 +    ​/* 
 +      ​$router->​get('​pattern',​ function() { }); 
 + $router->​post('​pattern',​ function() {  }); 
 + $router->​put('​pattern',​ function() {  }); 
 + $router->​delete('​pattern',​ function() {  }); 
 + $router->​options('​pattern',​ function() {  }); 
 + $router->​patch('​pattern',​ function() { }); 
 + $router->​all('​pattern',​ function() { }); 
 +     * */ 
 +  
 + $router->​get('/',​ function () { 
 + echo '<​h1>​Home page</​h1>';​ 
 +  
 + }); 
 +  
 + $router->​get('/​fabio',​ function () { 
 + echo '<​h1>​Hello Fabio!</​h1>';​ 
 + echo '​s='​.$_GET['​s'​];​ 
 +  
 + }); 
 +  
 +   $router->​set404(function () { 
 +         echo '<​h1>​Pagina non trovata </​h1>';​ 
 +    });
  
-===== Configuriamo Apache ===== +   
-Assicuriamoci che nel **file di configurazione principale di Apache** ​(di solito /​etc/​httpd/​htppd.conf,​ oppure /​etc/​apache2/​apache2.confsia abilitata la direttiva per l'​override delle impostazioni attraverso i file .htaccess .+   
 +   $router->​run();
  
-<file> +?>
-... +
-AccessFileName .htaccess +
-... +
-</​file>​ +
-Abilitiamo il nostro Virtual host ad accettare le direttive dai file .htaccess. +
-Andiamo nel **file della configurazione del nostro virtual host** e aggiungiamo quanto segue, avendo cura di scrivere il percorso giusto delle nostre cartelle:+
  
-<​file>​ 
-<​VirtualHost>​ 
-... 
-<​Directory /​var/​www/​html>​ 
-      ​Options Indexes FollowSymLinks 
-      ​AllowOverride All 
-      ​Require all granted 
- </​Directory>​ 
-  
-</​VirtualHost>​ 
  
 +</​code>​
  
-</​file>​ +**.htacces per apache**
- +
-In seguito inseriremo nella root del nostro progetto il file .htaccess :+
 <​file>​ <​file>​
 RewriteEngine On RewriteEngine On
-RewriteBase /+RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-d
-RewriteCond %{REQUEST_FILENAME} !-f +RewriteRule . index.php [L]
-RewriteRule ​^(.+)$ /​PHP/​routes/​index.php [QSA,L] +
 </​file>​ </​file>​
- 
-Attenzione ai percorsi. Ovviamente devono corrispondere al vostro index.php sulla root del progetto. In pratica stiamo redirigendo tutto il traffico http sul file index.php. Dunque ///​PHP/​routes/​ // è la cartella dove ho messo il mio progetto. 
- 
- 
-===== Il nostro codice PHP ===== 
-**index.php** 
-<code php> 
-<?php 
- 
-$request = $_SERVER['​REQUEST_URI'​];​ 
- 
- 
- 
-switch ($request) { 
-    ​ 
-    ​ 
-    case '/​PHP/​routes/'​ : 
-        require __DIR__ . '/​rotte/​home.php';​ 
-        break; 
-    case '/​PHP/​routes/​info'​ : 
-        require __DIR__ . '/​rotte/​phpinfo.php';​ 
-        break; 
-    ​ 
-    case '/​PHP/​routes/​fml':​ 
-        header('​Location:​ https://​www.freemedialab.org/'​);​ 
-        break; 
-  
-    default: 
-        http_response_code(404);​ 
-        require __DIR__ . '/​rotte/​404.php';​ 
-        break; 
-} 
-?> 
- 
-</​code>​ 
- 

programmazione/php/rotte_personalizzate.txt · Ultima modifica: 23/08/2023 - 16:54 da Fabio Di Matteo