Documentation

內容目录

上一个主题

< Class Phalcon\Mvc\User\Plugin

下一个主题

Abstract class Phalcon\Mvc\View\Engine >

本页

Class Phalcon\Mvc\View

extends abstract class Phalcon\Di\Injectable

implements Phalcon\Events\EventsAwareInterface, Phalcon\Di\InjectionAwareInterface, Phalcon\Mvc\ViewInterface, Phalcon\Mvc\ViewBaseInterface

Source on GitHub

Phalcon\Mvc\View is a class for working with the “view” portion of the model-view-controller pattern. That is, it exists to help keep the view script separate from the model and controller scripts. It provides a system of helpers, output filters, and variable escaping.

<?php

 //Setting views directory
 $view = new \Phalcon\Mvc\View();
 $view->setViewsDir('app/views/');

 $view->start();
 //Shows recent posts view (app/views/posts/recent.phtml)
 $view->render('posts', 'recent');
 $view->finish();

 //Printing views output
 echo $view->getContent();

Constants

integer LEVEL_MAIN_LAYOUT

integer LEVEL_AFTER_TEMPLATE

integer LEVEL_LAYOUT

integer LEVEL_BEFORE_TEMPLATE

integer LEVEL_ACTION_VIEW

integer LEVEL_NO_RENDER

integer CACHE_MODE_NONE

integer CACHE_MODE_INVERSE

Methods

public getRenderLevel ()

...

public getCurrentRenderLevel ()

...

public getRegisteredEngines ()

public __construct ([array $options])

Phalcon\Mvc\View constructor

public setViewsDir (unknown $viewsDir)

Sets the views directory. Depending of your platform, always add a trailing slash or backslash

public getViewsDir ()

Gets views directory

public setLayoutsDir (unknown $layoutsDir)

Sets the layouts sub-directory. Must be a directory under the views directory. Depending of your platform, always add a trailing slash or backslash

<?php

 $view->setLayoutsDir('../common/layouts/');

public getLayoutsDir ()

Gets the current layouts sub-directory

public setPartialsDir (unknown $partialsDir)

Sets a partials sub-directory. Must be a directory under the views directory. Depending of your platform, always add a trailing slash or backslash

<?php

 $view->setPartialsDir('../common/partials/');

public getPartialsDir ()

Gets the current partials sub-directory

public setBasePath (unknown $basePath)

Sets base path. Depending of your platform, always add a trailing slash or backslash

<?php

    $view->setBasePath(__DIR__ . '/');

public getBasePath ()

Gets base path

public setRenderLevel (unknown $level)

Sets the render level for the view

<?php

    //Render the view related to the controller only
    $this->view->setRenderLevel(View::LEVEL_LAYOUT);

public Phalcon\Mvc\View disableLevel (int|array $level)

Disables a specific level of rendering

<?php

 //Render all levels except ACTION level
 $this->view->disableLevel(View::LEVEL_ACTION_VIEW);

public setMainView (unknown $viewPath)

Sets default view name. Must be a file without extension in the views directory

<?php

    //Renders as main view views-dir/base.phtml
    $this->view->setMainView('base');

public getMainView ()

Returns the name of the main view

public setLayout (unknown $layout)

Change the layout to be used instead of using the name of the latest controller name

<?php

    $this->view->setLayout('main');

public getLayout ()

Returns the name of the main view

public Phalcon\Mvc\View setTemplateBefore (string|array $templateBefore)

Sets a template before the controller layout

public cleanTemplateBefore ()

Resets any “template before” layouts

public Phalcon\Mvc\View setTemplateAfter (string|array $templateAfter)

Sets a “template after” controller layout

public cleanTemplateAfter ()

Resets any template before layouts

public Phalcon\Mvc\View setParamToView (string $key, mixed $value)

Adds parameters to views (alias of setVar)

<?php

$this->view->setParamToView('products', $products);

public Phalcon\Mvc\View setVars (array $params, [boolean $merge])

Set all the render params

<?php

$this->view->setVars(array('products' => $products));

public Phalcon\Mvc\View setVar (string $key, mixed $value)

Set a single view parameter

<?php

$this->view->setVar('products', $products);

public mixed getVar (string $key)

Returns a parameter previously set in the view

public array getParamsToView ()

Returns parameters to views

public string getControllerName ()

Gets the name of the controller rendered

public string getActionName ()

Gets the name of the action rendered

public array getParams ()

Gets extra parameters of the action rendered

public start ()

Starts rendering process enabling the output buffering

protected _loadTemplateEngines ()

Loads registered template engines, if none is registered it will use Phalcon\Mvc\View\Engine\Php

protected _engineRender (array $engines, string $viewPath, boolean $silence, boolean $mustClean, [Phalcon\Cache\BackendInterface $cache])

Checks whether view exists on registered extensions and render it

public registerEngines (array $engines)

Register templating engines

<?php

$this->view->registerEngines(array(
  ".phtml" => "Phalcon\Mvc\View\Engine\Php",
  ".volt"  => "Phalcon\Mvc\View\Engine\Volt",
  ".mhtml" => "MyCustomEngine"
));

public exists (unknown $view)

Checks whether view exists

public render (string $controllerName, string $actionName, [array $params])

Executes render process from dispatching data

<?php

 //Shows recent posts view (app/views/posts/recent.phtml)
 $view->start()->render('posts', 'recent')->finish();

public Phalcon\Mvc\View pick (string|array $renderView)

Choose a different view to render instead of last-controller/last-action

<?php

 class ProductsController extends \Phalcon\Mvc\Controller
 {

    public function saveAction()
    {

         //Do some save stuff...

         //Then show the list view
         $this->view->pick("products/list");
    }
 }

public string getPartial (string $partialPath, [array $params])

Renders a partial view

<?php

    //Retrieve the contents of a partial
    echo $this->getPartial('shared/footer');
<?php

    //Retrieve the contents of a partial with arguments
    echo $this->getPartial('shared/footer', array('content' => $html));

public partial (string $partialPath, [array $params])

Renders a partial view

<?php

    //Show a partial inside another view
    $this->partial('shared/footer');
<?php

    //Show a partial inside another view with parameters
    $this->partial('shared/footer', array('content' => $html));

public string getRender (string $controllerName, string $actionName, [array $params], [mixed $configCallback])

Perform the automatic rendering returning the output as a string

<?php

    $template = $this->view->getRender('products', 'show', array('products' => $products));

public finish ()

Finishes the render process by stopping the output buffering

protected _createCache ()

Create a Phalcon\Cache based on the internal cache options

public isCaching ()

Check if the component is currently caching the output content

public getCache ()

Returns the cache instance used to cache

public Phalcon\Mvc\View cache ([boolean|array $options])

Cache the actual view render to certain level

<?php

  $this->view->cache(array('key' => 'my-key', 'lifetime' => 86400));

public setContent (unknown $content)

Externally sets the view content

<?php

$this->view->setContent("<h1>hello</h1>");

public getContent ()

Returns cached output from another view stage

public getActiveRenderPath ()

Returns the path of the view that is currently rendered

public disable ()

Disables the auto-rendering process

public enable ()

Enables the auto-rendering process

public reset ()

Resets the view component to its factory default values

public __set (string $key, mixed $value)

Magic method to pass variables to the views

<?php

$this->view->products = $products;

public mixed __get (string $key)

Magic method to retrieve a variable passed to the view

<?php

echo $this->view->products;

public isDisabled ()

Whether automatic rendering is enabled

public boolean __isset (string $key)

Magic method to retrieve if a variable is set in the view

<?php

  echo isset($this->view->products);

public setDI (Phalcon\DiInterface $dependencyInjector) inherited from Phalcon\Di\Injectable

Sets the dependency injector

public getDI () inherited from Phalcon\Di\Injectable

Returns the internal dependency injector

public setEventsManager (Phalcon\Events\ManagerInterface $eventsManager) inherited from Phalcon\Di\Injectable

Sets the event manager

public getEventsManager () inherited from Phalcon\Di\Injectable

Returns the internal event manager

Follow along: