FuelPHP - Viste
Viewè il livello di presentazione dell'applicazione MVC. Separa la logica dell'applicazione dalla logica di presentazione. Quando un controller necessita di generare HTML, CSS o qualsiasi altro contenuto, inoltra l'attività al motore di visualizzazione.
FuelPHP fornisce una classe semplice e flessibile, View con tutte le caratteristiche necessarie di un motore di visualizzazione. La classe di visualizzazione supporta il rendering del file di visualizzazione. Il file di visualizzazione è una pagina HTML con istruzioni PHP incorporate. Le variabili del file di visualizzazione possono essere impostate utilizzando la classe View come array PHP e referenziate nel file di visualizzazione utilizzando la chiave dell'array. Controlliamo alcuni dei metodi importanti della classe View.
fucina
Purpose - Crea un nuovo oggetto View
Parameter - Di seguito sono riportati i parametri
$file - Percorso del file di visualizzazione relativo alla cartella delle visualizzazioni, fuel / app / views
$data - Matrice di valori
$filter - Imposta la codifica automatica, il valore predefinito è le impostazioni nel file di configurazione principale
Returns - Istanza della vista
Per esempio,
$view = View::forge ('path/to/view', array( 
   'title' => "Show employee, 
   'employees' => $employees, 
)); 
    auto_filter
Purpose - Imposta se codificare i dati o meno
Parameter - Di seguito è riportato il parametro
$filter - vero / falso
Returns - Oggetto vista corrente
Per esempio,
$view->auto_filter(); 
$view = $view->auto_filter(false); 
    set_filename
Purpose - Consente di impostare o modificare il file di visualizzazione.
Parameter - Di seguito è riportato il parametro -
$file - Percorso per visualizzare il file relativo alla cartella delle visualizzazioni, carburante / app / visualizzazioni
Returns - Oggetto vista corrente
Per esempio,
$view = new View();
$view>set_filename('path/to/view'); 
    impostato
Purpose - Imposta il valore di una o più variabili
Parameter - Di seguito sono riportati i parametri
$key - Nome variabile o matrice di valori
$value - Valore / null
$filter - Impostazioni di codifica, vero / falso
Returns - Oggetto vista corrente
Per esempio,
$view = new View(); 
$view->set(array('name' => 'Jon')); 
    set_global
set_global è simile a set, tranne per il fatto che si applica a tutte le viste e le variabili sono accessibili da tutte le viste. Questo è un metodo statico.
View::set_global('name', 'Jon', false); 
    set_safe
Purpose - Imposta il valore di una o più variabili con la codifica sicura attiva.
Parameter - Di seguito sono riportati i parametri -
$key - Nome variabile o matrice di valori
$value - Valore / null
Returns - Oggetto vista corrente
Per esempio,
$view = new View(); 
$view->set_safe(array('name' => 'Jon'), null); 
    ottenere
Purpose - Ottieni il valore di una o più variabili
Parameter - Di seguito sono riportati i parametri
$key - Nome variabile
$default - Valore predefinito da restituire se la chiave non viene trovata
Returns - Valore della chiave di input
Per esempio,
$view = new View(); 
$name = $view>get('name');  // name = 'Jon' 
    render
Purpose - Rende i file della vista in stringa unendoli alle variabili locali e globali
Parameter - Di seguito sono riportati i parametri -
$file - Il nome del file della vista
Returns - Il file di visualizzazione renderizzato come stringa
Per esempio,
$html = View::forge()->render('/path/to/view'); 
    Crea una vista
Per comprendere le visualizzazioni, modifichiamo il metodo di azione, action_show del controller, Controller_Employee .
dipendente.php
<?php  
   class Controller_Employee extends Controller { 
      public function action_show() {
         return View::forge('employee/show'); 
      } 
   } 
    Ora crea una cartella dipendente nella directory delle viste, situata in fuel / app / views . Quindi, crea un file show.php nella cartella dei dipendenti e aggiungi il seguente codice.
show.php
<h3> My first view </h3> 
    Ora, richiedi l'URL http: // localhost: 8080 / dipendente / show e produce il seguente risultato.
                Passaggio di dati alla visualizzazione
Possiamo passare i dati alle viste usando i metodi View come discusso in precedenza. Di seguito è riportato un semplice esempio.
dipendente.php
class Controller_Employee extends Controller { 
   public function action_show() { 
      $data = array(); //stores variables going to views 
      $data['name'] = ‘Jon’; 
      $data[‘job’] = ‘Designer’;  
      
      //assign the view to browser output 
      return View::forge('employee/show', $data); 
   } 
} 
    Ora aggiungi le modifiche nel file view file.
show.php
<html> 
   <body> 
      Hello, <?php echo $name; ?>. 
      Your job is, <?php echo $job; ?>. 
   </body> 
</html> 
    Dopo aver richiesto l'URL, verrà visualizzato il nome e il lavoro come segue:
                Visualizza filtro
Le viste utilizzano la codifica dell'output per passare tutto ciò che desideri. Se vuoi passare dati non filtrati, possiamo usare il metodo set.
dipendente.php
class Controller_Employee extends Controller { 
   public function action_show() { 
      $view = \View::forge('employee/show'); 
      $view->set('name', 'Jon', true); 
      $view->set('job', '<em>Designer</em>', false); 
      return $view; 
   } 
} 
    Dopo aver richiesto l'URL, verranno visualizzati i dettagli del lavoro in stile enfasi, come segue.
                Viste nidificate
FuelPHP supporta le viste annidate. Nelle viste nidificate, una vista può contenere una o più viste. Per impostare le viste in un'altra vista, possiamo usare il metodo di rendering come segue.
dipendente.php
class Controller_Employee extends Controller { 
   public function action_nestedview() { 
      
      //assign variables 
      $data = array(); 
      $data['title'] = 'Home';  
      $data['name'] = 'Jon'; 
      $data['job'] = 'Designer';  
      $views = array(); 
      $views['head'] = View::forge('head', $data)->render(); 
      $views['content'] = View::forge('employee/show', $data)->render();  
      return View::forge('layout', $views, false)->render(); 
   } 
} 
    carburante / app / visualizzazioni / layout.php
<html> 
   <head> 
      <?php echo $head; ?> 
   </head> 
   
   <body> 
      <?php echo $content; ?> 
   </body> 
</html> 
    carburante / app / visualizzazioni / head.php
<title>
   <?php echo $title; ?>
</title> 
    carburante / app / visualizzazioni / dipendente / show.php
Hello, <?php echo $name; ?>. 
Your job is, <?php echo $job; ?>. 
    Dopo aver richiesto l'URL, http: // localhost: 8080 / dipendente / nestedview e aver controllato la vista sorgente, fornisce il codice seguente.
<html> 
   <head> 
      <title>Home</title> 
   </head> 
   
   <body> 
      Hello, Jon. 
      Your job is, Designer. 
   </body> 
</html> 
    Controller modello
FuelPHP fornisce un controller, Controller_Template con un concetto di layout integrato. Il concetto di layout viene eseguito utilizzandobefore() e after()metodo del Titolare. Per utilizzare il controller del modello, è necessario estendere il controller utilizzando Controller_Template invece di Controller. Durante l'utilizzo del metodo after () / before (), dobbiamo chiamare parent :: before e parent :: after, altrimenti il modello si interrompe.
<?php 
   class Controller_Test extends Controller_Template { 
      public function before() { 
         parent::before(); 
         // do stuff 
      } 
        
      public function after($response) { 
         $response = parent::after($response); 
         
         // do stuff 
         return $response; 
      } 
   } 
    template.php
È un file modello predefinito in Fuel. Il file modello viene utilizzato per chiamare JS, CSS, HTML e richiamare i partials della vista. Si trova infuel/app/views/. I modelli vengono utilizzati per avvolgere la vista in un layout con un'intestazione, un piè di pagina, una barra laterale, ecc.
carburante / app / classi / controller / test.php
<?php  
   class Controller_Test extends Controller_Template { 
      public $template = 'template_test'; 
      public function action_index() { 
         $this->template->title = 'Example Page'; 
         $this->template->content = View::forge('test/index'); 
      } 
   } 
    carburante / app / views / template_test.php
<!DOCTYPE html> 
<html> 
   <head> 
      <meta charset = "utf-8"> 
      <title><?php echo $title; ?></title> 
      <?php echo Asset::css('bootstrap.css'); ?> 
   </head> 
   <body> 
      <div> 
         <?php echo $content; ?>
      </div> 
   </body> 
</html> 
    carburante / app / visualizzazioni / test / index.php
<h3>My Test page</h3> 
    Ora, richiedi l'URL http: // localhost: 8080 / test e produce il seguente risultato.
Risultato
<!DOCTYPE html> 
<html> 
   <head> 
      <meta charset = "utf-8"> 
      <title>Example Page</title> 
      <link type = "text/css" rel = "stylesheet" 
         href = "http://localhost:8080/assets/css/bootstrap.css?1464964766" />
   </head> 
   
   <body> 
      <div> 
         <h3>My Test page</h3> 
      </div> 
   </body> 
</html> 
    Genera pagina di visualizzazione
È possibile generare una pagina di visualizzazione utilizzando la console Fuel's Oil. Di seguito è riportata la sintassi di base.
oil g controller <controller-name> <page1> <page2> .. 
    Per generare un controller di amministrazione con la home page e le pagine di accesso, utilizzare il seguente comando.
oil g controller admin home login 
    Risultato
Creating view: /path/to/app/fuel/app/views/admin/home.php 
Creating view: /path/to/app/fuel/app/views/admin/login.php 
Creating controller: /path/to/app/fuel/app/classes/controller/admin.php