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