php8.5
Home/ Manual/ yaf / yaf_view_interface/ Yaf_View_Interface::setScriptPath

Yaf_View_Interface::setScriptPath

PHP function Edit on GitHub ✎

(Yaf >=1.0.0)

Set the template directory

Description

Yaf_View_Interface::setScriptPath(string $template_dir): Yaf_View_Interface

Sets the directory in which templates are looked up.

Parameters

template_dir

The directory where the template scripts are stored.

Return Values

Returns the view instance, or false if template_dir is not an absolute path.

Examples

Yaf_View_Interface::setScriptPath example

php
<?php
class MyView implements Yaf_View_Interface
{
    private $tpl_dir;
    private $vars = array();

    public function __construct($template_dir, $options = null)
    {
        $this->tpl_dir = $template_dir;
    }

    public function assign($name, $value = null)
    {
        $this->vars[$name] = $value;
        return true;
    }

    public function display($tpl, $tpl_vars = null)
    {
        echo $this->render($tpl, $tpl_vars);
        return true;
    }

    public function render($tpl, $tpl_vars = null)
    {
        extract($this->vars);
        if ($tpl_vars !== null) {
            extract($tpl_vars);
        }
        ob_start();
        include $this->tpl_dir . "/" . $tpl;
        return ob_get_clean();
    }

    public function setScriptPath($template_dir)
    {
        $this->tpl_dir = $template_dir;
        return $this;
    }

    public function getScriptPath()
    {
        return $this->tpl_dir;
    }
}

/* plug the custom view engine into the dispatcher in the bootstrap */
class Bootstrap extends Yaf_Bootstrap_Abstract
{
    public function _initView(Yaf_Dispatcher $dispatcher)
    {
        $dispatcher->setView(new MyView(APPLICATION_PATH . "/views"));
    }
}
?>

See Also

  • Yaf_View_Interface::getScriptPath
  • Yaf_View_Interface::render
  • Yaf_View_Interface::display

Source: reference/yaf/yaf_view_interface/setscriptpath.xml · from the official PHP manual (php/doc-en)