Yaf_Dispatcher::setView

(Yaf >=1.0.0)

Yaf_Dispatcher::setViewSet a custom view engine

Beschreibung

public Yaf_Dispatcher::setView(Yaf_View_Interface $view): Yaf_Dispatcher

This method provides a solution if you want use a custom view engine instead of Yaf_View_Simple

Parameter-Liste

view

A Yaf_View_Interface instance

Rückgabewerte

Beispiele

Beispiel #1 A custom View engine() example

<?php
require "/path/to/smarty/Smarty.class.php";

class 
Smarty_Adapter implements Yaf_View_Interface
{
    
/**
     * Smarty object
     * @var Smarty
     */
    
public $_smarty;
 
    
/**
     * Constructor
     *
     * @param string $tmplPath
     * @param array $extraParams
     * @return void
     */
    
public function __construct($tmplPath null$extraParams = array()) {
        
$this->_smarty = new Smarty;
 
        if (
null !== $tmplPath) {
            
$this->setScriptPath($tmplPath);
        }
 
        foreach (
$extraParams as $key => $value) {
            
$this->_smarty->$key $value;
        }
    }
 
    
/**
     * Set the path to the templates
     *
     * @param string $path The directory to set as the path.
     * @return void
     */
    
public function setScriptPath($path)
    {
        if (
is_readable($path)) {
            
$this->_smarty->template_dir $path;
            return;
        }
 
        throw new 
Exception('Invalid path provided');
    }
 
    
/**
     * Assign a variable to the template
     *
     * @param string $key The variable name.
     * @param mixed $val The variable value.
     * @return void
     */
    
public function __set($key$val)
    {
        
$this->_smarty->assign($key$val);
    }
 
    
/**
     * Allows testing with empty() and isset() to work
     *
     * @param string $key
     * @return boolean
     */
    
public function __isset($key)
    {
        return (
null !== $this->_smarty->get_template_vars($key));
    }
 
    
/**
     * Allows unset() on object properties to work
     *
     * @param string $key
     * @return void
     */
    
public function __unset($key)
    {
        
$this->_smarty->clear_assign($key);
    }
 
    
/**
     * Assign variables to the template
     *
     * Allows setting a specific key to the specified value, OR passing
     * an array of key => value pairs to set en masse.
     *
     * @see __set()
     * @param string|array $spec The assignment strategy to use (key or
     * array of key => value pairs)
     * @param mixed $value (Optional) If assigning a named variable,
     * use this as the value.
     * @return void
     */
    
public function assign($spec$value null) {
        if (
is_array($spec)) {
            
$this->_smarty->assign($spec);
            return;
        }
 
        
$this->_smarty->assign($spec$value);
    }
 
    
/**
     * Clear all assigned variables
     *
     * Clears all variables assigned to Yaf_View either via
     * {@link assign()} or property overloading
     * ({@link __get()}/{@link __set()}).
     *
     * @return void
     */
    
public function clearVars() {
        
$this->_smarty->clear_all_assign();
    }
 
    
/**
     * Processes a template and returns the output.
     *
     * @param string $name The template to process.
     * @return string The output.
     */
    
public function render($name$value NULL) {
        return 
$this->_smarty->fetch($name);
    }

    public function 
display($name$value NULL) {
        echo 
$this->_smarty->fetch($name);
    }

}
?>

Beispiel #2 Yaf_Dispatcher::setView() example

<?php
class Bootstrap extends Yaf_Bootstrap_Abstract {

    
/**
     * there are some config for smarty in the config:
     *
     * smarty.left_delimiter   = "{{"
     * smarty.right_delimiter  = "}}"
     * smarty.template_dir     = APPLICATION_PATH "/views/scripts/"
     * smarty.compile_dir      = APPLICATION_PATH "/views/templates_c/"
     * smarty.cache_dir        = APPLICATION_PATH "/views/templates_d/"
     *
     */
    
public function _initConfig() {
        
$config Yaf_Application::app()->getConfig();
        
Yaf_Registry::set("config"$config);
    }

    public function 
_initLocalName() {
        
/** we put class Smarty_Adapter under the local library directory */
        
Yaf_Loader::getInstance()->registerLocalNamespace('Smarty');
    }

    public function 
_initSmarty(Yaf_Dispatcher $dispatcher) {
        
$smarty = new Smarty_Adapter(nullYaf_Registry::get("config")->get("smarty"));
        
$dispatcher->setView($smarty);
        
/* now the Smarty view engine become the default view engine of Yaf */
    
}
}
?>

Hier Kannst Du einen Kommentar verfassen


Bitte gib mindestens 10 Zeichen ein.
Wird geladen... Bitte warte.
* Pflichtangabe
Es sind noch keine Kommentare vorhanden.

Was genau bedeutet "Vibe Coding"? Ein tiefgehender Blick für Entwickler

In der Welt der Softwareentwicklung gibt es unzählige Wege, wie man an ein Projekt herangeht. Manche schwören auf strikte Planung, andere auf bewährte Algorithmen und wieder andere lassen sich von etwas ganz anderem leiten: ihrem Gefühl. ...

admin

Autor : admin
Kategorie: Software & Web-Development

PHP cURL-Tutorial: Verwendung von cURL zum Durchführen von HTTP-Anfragen

cURL ist eine leistungsstarke PHP-Erweiterung, die es Ihnen ermöglicht, mit verschiedenen Servern über verschiedene Protokolle wie HTTP, HTTPS, FTP und mehr zu kommunizieren. ...

TheMax

Autor : TheMax
Kategorie: PHP-Tutorials

Midjourney Tutorial - Anleitung für Anfänger

Über Midjourney, dem Tool zur Erstellung digitaler Bilder mithilfe von künstlicher Intelligenz, gibt es ein informatives Video mit dem Titel "Midjourney Tutorial auf Deutsch - Anleitung für Anfänger" ...

Mike94

Autor : Mike94
Kategorie: KI Tutorials

Tutorial veröffentlichen

Tutorial veröffentlichen

Teile Dein Wissen mit anderen Entwicklern weltweit

Du bist Profi in deinem Bereich und möchtest dein Wissen teilen, dann melde dich jetzt an und teile es mit unserer PHP-Community

mehr erfahren

Tutorial veröffentlichen

Cloud Antivirus: Moderne Sicherheit aus der Datenwolke

In Zeiten zunehmender Cyberbedrohungen sind klassische Virenschutzprogramme oft nicht mehr ausreichend, um mit den ständig wachsenden Herausforde ...

Geschrieben von Codini am 03.05.2025 10:11:31
Forum: Off-Topic Diskussionen
Discourse Hosting – Die moderne Lösung für Community-Management

In einer zunehmend digitalen Welt sind starke Online-Communities ein wichtiger Erfolgsfaktor für Unternehmen, Vereine, Projekte und Organisatione ...

Geschrieben von Codini am 03.05.2025 09:03:27
Forum: Off-Topic Diskussionen
Kontakt über API anlegen per PHP

Warum bekomme ich beim Anlegen eines Kontakts über die API nur einen HTTP-Statuscode 200 statt 201, obwohl die Daten scheinbar korrekt gesendet w ...

Geschrieben von amorapotter am 03.05.2025 08:47:19
Forum: PHP Developer Forum
Tutorial: Download

The Minecraft Jason Momoa leather jacket (https://www.celebsmoviejackets.com/a-minecraft-2025-jason-momoa-leather-jacket) is a bold fusion of rugg ...

Geschrieben von sumitguptill90 am 30.04.2025 14:52:40
Forum: Tutorials