vitodtagliente / pure-template
Pure 模板组件
dev-master
2019-04-08 18:00 UTC
This package is auto-updated.
Last update: 2024-09-09 05:41:15 UTC
README
简单快速的模板引擎
如何渲染视图
-
定义引擎将搜索视图文件的默认路径
Pure\Template\View::namespace( $default_path );
-
实例化视图对象
$view = new Pure\Template\View(); // or $view = new Pure\Template\View( array('param1' => 'value1', ... , 'paramN' => 'valueN') );
-
设置参数
$view->paramJ = 'valueJ';
这样可以在默认构造函数外部定义其他参数。
-
清除参数
$view->clear();
-
渲染输出
$view->render( $filename, // the file palced inside the base path $direct_output = true, // if true, the output is displayed $dont_compute = false // if true, no engine extensions are applied );
-
而不是实例化视图对象,可以直接通过静态函数输出视图
Pure\Template\View::make( $filename, $params = array(), $direct_output = true, $dont_compute = false );
-
如何在不同的路径中定位视图并使用命名空间渲染它们
可以定义多个命名空间,每个命名空间指向特定的路径
Pure\Template\View::namespace('path/views'); // define the base namespace Pure\Template\View::namespace('path/views/auth', 'auth'); // define the auth namespace
一旦定义了命名空间,就可以使用以下语法加载视图
"namespace::view_filename"
例如
Pure\Template\View::make('welcome.php'); // file: path/views/welcome.php Pure\Template\View::make('auth::login.php'); // file: path/views/auth/login.php
简单示例
- 在路径:views/example.php 中定义视图
<html> <head> <title>Example</title> </head> <body> <?php echo $foo; ?> </body> </html>
- 渲染视图
use Pure\Template\View; // Set the default path View::namespace('views'); $view = new View(); $view->foo = "Hello View!"; // set the param foo $result = $view->render('example.php');
- 输出将是这样的
<html> <head> <title>Example</title> </head> <body> Hello View! </body> </html>
如何避免内联调用
在上一个例子中,我们使用了
<body> <?php echo $foo; ?> </body>
来渲染定义为的 foo 变量
$view = new View(); $view->foo = "Hello View!"; // set the param foo
如果在渲染阶段,$dont_compute 参数设置为 false,则调用视图引擎扩展。这意味着有更多的功能可用。
- 快速渲染参数
<body> {{ $foo }} </body>
如何扩展视图
另一个 Pure 模板扩展允许扩展视图并覆盖内容。
- 要扩展视图
@extends('view_filename')
必须将 @extends 作为第一条语句 - 部分必须在父视图中定义
@section('section_name')
- 部分可以按照以下方式覆盖
@begin('section_name') <h1> HTML content </h1> @end
实际示例
- 在 views/template.php 中定义放置的父模板
<html> <head> <title>Example</title> </head> <body> @section('content') </body> </html>
- 基于此模板定义一个新的视图
@extends('template.php') @begin('content') <p>Hello View!</p> @end
- 输出将是这样的
<html> <head> <title>Example</title> </head> <body> <p>Hello View</p> </body> </html>