FuelPHP - Ansichten

Viewist die Präsentationsschicht der MVC-Anwendung. Es trennt die Anwendungslogik von der Präsentationslogik. Wenn ein Controller HTML, CSS oder andere Inhalte generieren muss, leitet er die Aufgabe an die View Engine weiter.

FuelPHP bietet eine einfache und flexible Klasse, View, mit allen erforderlichen Funktionen einer View-Engine. Die Ansichtsklasse unterstützt das Rendern der Ansichtsdatei. View-Datei ist eine HTML-Seite mit eingebetteten PHP-Anweisungen. Variablen der Ansichtsdatei können mithilfe der Ansichtsklasse als PHP-Array festgelegt und in der Ansichtsdatei mit dem Schlüssel des Arrays referenziert werden. Lassen Sie uns einige der wichtigen Methoden der View-Klasse überprüfen.

Schmiede

  • Purpose - Erstellt ein neues Ansichtsobjekt

  • Parameter - Nachfolgend sind die Parameter aufgeführt

    • $file - Pfad der Ansichtsdatei relativ zum Ansichtsordner, Kraftstoff / App / Ansichten

    • $data - Array von Werten

    • $filter - Legt die automatische Codierung fest und verwendet standardmäßig die Einstellungen in der Hauptkonfigurationsdatei

  • Returns - Instanz der Ansicht

Zum Beispiel,

$view = View::forge ('path/to/view', array( 
   'title' => "Show employee, 
   'employees' => $employees, 
));

automatischer Filter

  • Purpose - Legen Sie fest, ob die Daten codiert werden sollen oder nicht

  • Parameter - Es folgt der Parameter

    • $filter - wahr / falsch

  • Returns - Aktuelles Ansichtsobjekt

Zum Beispiel,

$view->auto_filter(); 
$view = $view->auto_filter(false);

set_filename

  • Purpose - Ermöglicht das Festlegen oder Ändern der Ansichtsdatei.

  • Parameter - Es folgt der Parameter -

    • $file - Pfad zum Anzeigen der Datei relativ zum Ansichtsordner, Kraftstoff / App / Ansichten

  • Returns - Aktuelles Ansichtsobjekt

Zum Beispiel,

$view = new View();
$view>set_filename('path/to/view');

einstellen

  • Purpose - Stellen Sie den Wert einer oder mehrerer Variablen ein

  • Parameter - Nachfolgend sind die Parameter aufgeführt

    • $key - Variablenname oder Array von Werten

    • $value - Wert / null

    • $filter - Codierungseinstellung, wahr / falsch

  • Returns - Aktuelles Ansichtsobjekt

Zum Beispiel,

$view = new View(); 
$view->set(array('name' => 'Jon'));

set_global

set_global ähnelt set, außer dass es für alle Ansichten gilt und die Variablen für alle Ansichten zugänglich sind. Dies ist eine statische Methode.

View::set_global('name', 'Jon', false);

set_safe

  • Purpose - Stellen Sie den Wert einer oder mehrerer Variablen mit aktivierter sicherer Codierung ein.

  • Parameter - Es folgen die Parameter -

    • $key - Variablenname oder Array von Werten

    • $value - Wert / null

  • Returns - Aktuelles Ansichtsobjekt

Zum Beispiel,

$view = new View(); 
$view->set_safe(array('name' => 'Jon'), null);

bekommen

  • Purpose - Ermitteln Sie den Wert einer oder mehrerer Variablen

  • Parameter - Nachfolgend sind die Parameter aufgeführt

    • $key - Variablenname

    • $default - Standardwert, der zurückgegeben wird, wenn der Schlüssel nicht gefunden wird

  • Returns - Wert der Eingabetaste

Zum Beispiel,

$view = new View(); 
$name = $view>get('name');  // name = 'Jon'

machen

  • Purpose - Rendern Sie die Ansichtsdateien in eine Zeichenfolge, indem Sie sie mit den lokalen und globalen Variablen zusammenführen

  • Parameter - Es folgen die Parameter -

    • $file - Der Dateiname der Ansicht

  • Returns - Die gerenderte Ansichtsdatei als Zeichenfolge

Zum Beispiel,

$html = View::forge()->render('/path/to/view');

Erstellen Sie eine Ansicht

Um die Ansichten zu verstehen, ändern wir die Aktionsmethode action_show of controller, Controller_Employee .

employee.php

<?php  
   class Controller_Employee extends Controller { 
      public function action_show() {
         return View::forge('employee/show'); 
      } 
   }

Erstellen Sie nun einen Ordner-Mitarbeiter im Verzeichnis "Views" unter " uel / app / views " . Erstellen Sie dann eine Datei show.php im Mitarbeiterordner und fügen Sie den folgenden Code hinzu.

show.php

<h3> My first view </h3>

Fordern Sie nun die URL http: // localhost: 8080 / employee / show an und Sie erhalten das folgende Ergebnis.

Daten an View übergeben

Wir können Daten mithilfe der zuvor beschriebenen View-Methoden an die Ansichten übergeben. Das Folgende ist ein einfaches Beispiel.

employee.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); 
   } 
}

Fügen Sie nun die Änderungen in der view Datei.

show.php

<html> 
   <body> 
      Hello, <?php echo $name; ?>. 
      Your job is, <?php echo $job; ?>. 
   </body> 
</html>

Nach dem Anfordern der URL werden der Name und der Job wie folgt angezeigt:

Filter anzeigen

Ansichten verwenden die Ausgabecodierung, um alles zu übergeben, was Sie möchten. Wenn Sie ungefilterte Daten übergeben möchten, können wir die set-Methode verwenden.

employee.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; 
   } 
}

Nach dem Anfordern der URL werden die Jobdetails wie folgt im Hervorhebungsstil angezeigt.

Verschachtelte Ansichten

FuelPHP unterstützt verschachtelte Ansichten. In verschachtelten Ansichten kann eine Ansicht eine oder mehrere Ansichten enthalten. Um die Ansichten in einer anderen Ansicht festzulegen, können Sie die Rendermethode wie folgt verwenden.

employee.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(); 
   } 
}

Kraftstoff / App / Ansichten / Layout.php

<html> 
   <head> 
      <?php echo $head; ?> 
   </head> 
   
   <body> 
      <?php echo $content; ?> 
   </body> 
</html>

Kraftstoff / App / Ansichten / head.php

<title>
   <?php echo $title; ?>
</title>

Kraftstoff / App / Ansichten / Mitarbeiter / Show.php

Hello, <?php echo $name; ?>. 
Your job is, <?php echo $job; ?>.

Nach dem Anfordern der URL http: // localhost: 8080 / employee / nestedview und dem Überprüfen der Quellansicht wird der folgende Code angezeigt .

<html> 
   <head> 
      <title>Home</title> 
   </head> 
   
   <body> 
      Hello, Jon. 
      Your job is, Designer. 
   </body> 
</html>

Template Controller

FuelPHP bietet einen Controller, Controller_Template, mit integriertem Layoutkonzept. Das Layoutkonzept erfolgt mitbefore() und after()Methode des Controllers. Um den Template-Controller zu verwenden, müssen wir den Controller mithilfe von Controller_Template anstelle von Controller erweitern. Bei Verwendung der after () / before () -Methode müssen wir parent :: before und parent :: after aufrufen, andernfalls wird die Vorlage unterbrochen.

<?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

Es ist eine Standardvorlagendatei in Fuel. Die Vorlagendatei wird zum Aufrufen von JS-, CSS-, HTML- und Call View-Partials verwendet. Es befindet sich infuel/app/views/. Vorlagen werden verwendet, um Ihre Ansicht in ein Layout mit einer Kopf-, Fuß- und Seitenleiste usw. zu verpacken. Wir können die Standardvorlage mithilfe der Variablen $ template in der Aktionsmethode wie folgt ändern.

Kraftstoff / App / Klassen / 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'); 
      } 
   }

Kraftstoff / App / Ansichten / 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>

Kraftstoff / App / Ansichten / Test / Index.php

<h3>My Test page</h3>

Fordern Sie nun die URL http: // localhost: 8080 / test an und Sie erhalten das folgende Ergebnis.

Ergebnis

<!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>

Ansichtsseite generieren

Sie können eine Ansichtsseite mit der Fuel's Oil-Konsole erstellen. Es folgt die grundlegende Syntax.

oil g controller <controller-name> <page1> <page2> ..

Verwenden Sie den folgenden Befehl, um einen Administrator-Controller mit Start- und Anmeldeseiten zu generieren.

oil g controller admin home login

Ergebnis

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