FuelPHP - Percorsi

Le mappe di routing richiedono un URI al metodo di un controller specifico. In questo capitolo, discuteremo il concetto dirouting in FuelPHP in dettaglio.

Configurazione

Il file di configurazione delle rotte si trova in fuel/app/config/routes.php. Il predefinitoroutes.php file è definito come segue:

<?php 
   return array ( 
      '_root_'  => 'welcome/index',   // The default route 
      '_404_'   => 'welcome/404',     // The main 404 route 
      'hello(/:name)?' => array('welcome/hello', 'name' => 'hello'), 
   );

Qui, _root_è la rotta predefinita predefinita, che verrà abbinata quando l'applicazione viene richiesta con il percorso di root, / eg http: // localhost: 8080 / . Il valore di _root_ è il controller e l'azione da risolvere quando viene trovata.welcome/indexsi risolve nel controller Controller_Welcome e nel metodo di azione action_index . Allo stesso modo, abbiamo i seguenti percorsi riservati.

  • root - La route predefinita quando non viene specificato alcun URI.

  • 403 - Viene generato quando viene trovata HttpNoAccessException.

  • 404 - Ritorna quando la pagina non viene trovata.

  • 500 - Viene generato quando viene trovata HttpServerErrorException.

Routing semplice

Il percorso viene confrontato con l'URI della richiesta. Se viene trovata una corrispondenza, la richiesta viene instradata all'URI. L'instradamento semplice è descritto come segue,

return array ( 
   'about'  => 'site/about', 
   'login' => 'employee/login', 
);

Qui, about corrisponde a http: // localhost: 8080 / about e risolve il controller, Controller_Site e il metodo di azione, action_about

login corrisponde a http: // localhost: 8080 / login e risolve il controller, Controller_Login e il metodo di azione, action_login

Routing avanzato

Puoi includere qualsiasi regex nei tuoi percorsi. Fuel supporta le seguenti funzioni di calcolo del percorso avanzate:

  • :any - Questo corrisponde a qualsiasi cosa da quel punto in poi nell'URI, non corrisponde a "niente"

  • :everything - Come: qualsiasi, ma corrisponde anche a "niente"

  • :segment - Questo corrisponde solo a 1 segmento nell'URI, ma quel segmento può essere qualsiasi cosa

  • :num - Questo corrisponde a qualsiasi numero

  • :alpha - Corrisponde a qualsiasi carattere alfabetico, incluso UTF-8

  • :alnum - Corrisponde a qualsiasi carattere alfanumerico, incluso UTF-8

Ad esempio, la seguente route corrisponde all'URI http: // localhost: 8080 / hello / FuelPHP e risolve controller, Controller_Welcome e action action_hello

'hello(/:name)?' => array('welcome/hello', 'name' => 'hello'),

Il metodo di azione corrispondente in Controller_Welcome è il seguente,

public function action_hello() { 
   $this->name = Request::active()->param('name', 'World'); 
   $message = "Hello, " . $this->name;  
   echo $message; 
}

Qui abbiamo utilizzato la classe Request per ottenere il parametro name dall'URL. Se il nome non viene trovato, stiamo usando World come valore predefinito. Impareremo la classe Request nel capitolo Request and Response .

Risultato

Azione metodo HTTP

FuelPHP supporta percorsi per abbinare le azioni prefissate del metodo HTTP. Di seguito è riportata la sintassi di base.

class Controller_Employee extends Controller { 
   public function get_index() { 
      // called when the HTTP method is GET. 
   }  
   public function post_index(){ 
      // called when the HTTP method is POST. 
   } 
}

Possiamo instradare i tuoi URL ai controller e alle azioni in base al verbo HTTP nel file di configurazione come segue.

return array ( 
   // Routes GET /employee to /employee/all and POST /employee to /employee/create 
   ‘employee’ => array(array('GET', new Route(‘employee/all')), array('POST', 
      new Route(‘employee/create'))), 
);