search
HomeBackend DevelopmentPHP TutorialYii Framework Official Guide Series 49 - Special Topic: Using Non-Mainstream Template Syntax



The Yii framework allows developers to use their favorite template syntax (such as Prado, Smarty) to write the view of a controller or widget. This can be done through Write and install a viewRenderer application component to achieve this. This view renderer intercepts the call to CBaseController::renderFile, compiles the view file through custom template syntax, and then renders the final compiled result.

Info: It is recommended to use custom template syntax only when writing views that are rarely reused. Otherwise, reusing views in the application will force the use of the same template syntax.

Next, we will introduce how to use CPradoViewRenderer, a view renderer similar to the Prado framework that allows developers to use custom template syntax. If you want to develop your own view renderer, CPradoViewRenderer is a good guide.

1. UseCPradoViewRenderer

To use CPradoViewRenderer, we just need to configure the application as follows:


return array(
    'components'=>array(
        ......,
        'viewRenderer'=>array(
            'class'=>'CPradoViewRenderer',
        ),
    ),
);

By default, CPradoViewRenderer will compile source view files and save the resulting PHP files under the runtime directory. Only when the source view files are changed, will the PHP files be re-generated. Therefore , using CPradoViewRenderer incurs very little performance degradation.

Tip: While CPradoViewRenderer mainly introduces some new template tags to make writing views easier and faster, you can still write PHP code as usual in the source views.

In the following, we introduce the template tags that are supported by CPradoViewRenderer.

PHP short tags

Short PHP tags are shortcuts to writing PHP expressions and statements in a view. The expression tag is translated into <?php echo expression ?>; while the statement tag to <?php statement ?>. For example,


 

is translated into


<?php  echo CHtml::textField($name,&#39;value&#39;); ?>
<?php  foreach($models as $model): ?>

Component tags

Component tags are used to insert a widget in a view. It uses the following syntax:


##

<widgetclass>
    // body content for the widget
</widgetclass>

// a widget without body content
<widgetclass></widgetclass>

where

WidgetClass specifies the widget class name or class path alias, and property initial values ​​can be either quoted strings or PHP expressions enclosed within a pair of curly brackets. For example,


<ccaptcha></ccaptcha>

would be translated as


<?php  $this->widget('CCaptcha', array(
    'captchaAction'=>'captcha',
    'showRefreshButton'=>false)); ?>

Note: The value for showRefreshButton is specified as {false} instead of "false" because the latter means a string instead of a boolean.

Cache tags

Cache tags are shortcuts to using fragment caching. Its syntax is as follows,


<fragmentid>
    // content being cached
</fragmentid> >

where

fragmentID should be an identifier that uniquely identifies the content being cached, and the property-value pairs are used to configure the fragment cache. For example,


<profile>
    // user profile information here
</profile> >

would be translated as


<?php  if($this->beginCache('profile', array('duration'=>3600))): ?>
    // user profile information here
<?php  $this->endCache(); endif; ?>

clip tag

Like cache tags, clip tags are shortcuts to calling CBaseController::beginClip and CBaseController::endClip in a view. The syntax is as follows,


<clipid>
    // content for this clip
</clipid> >

where

clipID is an identifier that uniquely identifies the clip content. The clip tags will be translated as


<?php  $this->beginClip('clipID'); ?>
    // content for this clip
<?php  $this->endClip(); ?>

Comment tags are used to write view comments that should only be visible to developers. Comment tags will be stripped off when the view is displayed to end users. The syntax for comment tags is as follows,


<!---
view comments that will be stripped off
--->

2. Mixed template formats

Starting from version 1.1.2, it is possible to mix the usage of some alternative template syntax with the normal PHP syntax. To do so, the CViewRenderer::fileExtension property of the installed view renderer must be configured with a value other than

.php

. For example, if the property is set as

.tpl, then any view file ending with .tpl will be rendered using the installed view renderer, while all other view files ending with .php will be treated as normal PHP view script. The above is Yii Framework Official Guide Series 49—— Special topic: Content using non-mainstream template syntax. For more related content, please pay attention to the PHP Chinese website (www.php.cn)!


Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
使用Yii框架创建电影网站使用Yii框架创建电影网站Jun 21, 2023 am 09:04 AM

随着互联网的普及以及人们对电影的热爱,电影网站成为了一个受欢迎的网站类型。在创建一个电影网站时,一个好的框架是非常必要的。Yii框架是一个高性能的PHP框架,易于使用且具有出色的性能。在本文中,我们将探讨如何使用Yii框架创建一个电影网站。安装Yii框架在使用Yii框架之前,需要先安装框架。安装Yii框架非常简单,只需要在终端执行以下命令:composer

Yii框架简介:了解Yii的核心概念Yii框架简介:了解Yii的核心概念Jun 21, 2023 am 09:39 AM

Yii框架是一个高性能、高扩展性、高可维护性的PHP开发框架,在开发Web应用程序时具有很高的效率和可靠性。Yii框架的主要优点在于其独特的特性和开发方法,同时还集成了许多实用的工具和功能。Yii框架的核心概念MVC模式Yii采用了MVC(Model-View-Controller)模式,是一种将应用程序分为三个独立部分的模式,即业务逻辑处理模型、用户界面呈

为什么Yii框架比其他框架更好用?为什么Yii框架比其他框架更好用?Jun 21, 2023 am 10:30 AM

Yii框架是一个高性能、可扩展、安全的PHP框架。它是一个优秀的开发工具,能够让开发者快速高效地构建复杂的Web应用程序。以下是几个原因,让Yii框架比其他框架更好用。高性能Yii框架使用了一些先进的技术,例如,延迟加载(lazyloading)和自动加载机制(automaticclassloading),这使得Yii框架的性能高于许多其他框架。它还提

Yii框架中的队列:高效地处理异步操作Yii框架中的队列:高效地处理异步操作Jun 21, 2023 am 10:13 AM

随着互联网的快速发展,应用程序对于处理大量并发请求和任务变得越来越重要。在这样的情况下,处理异步任务是必不可少的,因为这可以使应用程序更加高效,并更好地响应用户请求。Yii框架提供了一个方便的队列组件,使得处理异步操作更加容易和高效。在本篇文章中,我们将探讨Yii框架中队列的使用和优势。什么是队列队列是一种数据结构,用于处理数据的先进先出(FIFO)顺序。队

Yii框架中的ViewState:实现数据保护Yii框架中的ViewState:实现数据保护Jun 21, 2023 am 09:02 AM

ViewState是ASP.NET中的一种机制,用于保护页面的隐私数据。而在Yii框架中,ViewState同样也是实现页面数据保护的重要手段。在Web开发中,随着用户界面操作的复杂度增加,前端与后端之间的数据传输也愈发频繁。但是,不可避免的会有恶意用户通过网络抓包等手段截获数据。而未加保护的数据可能含有用户隐私、订单信息、财务数据等重要资料。因此,加密传输

Yii框架中的扩展:使用外部库Yii框架中的扩展:使用外部库Jun 21, 2023 am 10:11 AM

Yii是一款优秀的PHP框架,它提供了很多丰富的功能和组件来加快Web应用程序的开发。其中一个非常重要的特性就是可以方便地使用外部库进行扩展。Yii框架中的扩展可以帮助我们快速完成许多常见的任务,例如操作数据库、缓存数据、发送邮件、验证表单等等。但是有时候,我们需要使用一些其他的PHP类库来完成特定的任务,例如调用第三方API、处理图片、生成PDF文件等等。

Yii框架中的分页机制:优化数据展示效果Yii框架中的分页机制:优化数据展示效果Jun 21, 2023 am 08:43 AM

在现今互联网时代,数据的处理和展示对于各种应用而言都是至关重要的。对于一些数据量较大的网站,其展示效果直接影响用户体验,而优秀的分页机制可以使得数据展示更加清晰,提高用户的使用体验。在本文中,我们将介绍Yii框架中的分页机制,并探讨如何通过优化分页机制来改进数据展示效果。Yii框架是一种基于PHP语言的高性能、适用于Web应用的开发框架。它提供

Yii框架中的ORM:简化数据库操作Yii框架中的ORM:简化数据库操作Jun 21, 2023 am 08:19 AM

Yii框架是一款快速、高效、安全的PHP开发框架,依托于丰富的工具和组件,Yii框架可以帮助开发者更轻松地构建高质量的Web应用程序。其中,ORM(对象关系映射)是Yii框架其中之一的特点。这篇文章将简单介绍Yii框架中的ORM,并说明其如何简化数据库操作。一、什么是ORMORM是指对象关系映射,它将面向对象的编程语言中的对象与关系型数据库中的表进行映射,使

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

Hot Tools

WebStorm Mac version

WebStorm Mac version

Useful JavaScript development tools

DVWA

DVWA

Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver Mac version

Dreamweaver Mac version

Visual web development tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor