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

简单快速的模板引擎

如何渲染视图

  1. 定义引擎将搜索视图文件的默认路径

    Pure\Template\View::namespace( $default_path );
  2. 实例化视图对象

    $view = new Pure\Template\View();
    // or
    $view = new Pure\Template\View(
        array('param1' => 'value1', ... , 'paramN' => 'valueN')
    );
  3. 设置参数

    $view->paramJ = 'valueJ';

    这样可以在默认构造函数外部定义其他参数。

  4. 清除参数

    $view->clear();
  5. 渲染输出

    $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
    );
  6. 而不是实例化视图对象,可以直接通过静态函数输出视图

    Pure\Template\View::make(
        $filename,
        $params = array(),
        $direct_output = true,
        $dont_compute = false
    );
  7. 如何在不同的路径中定位视图并使用命名空间渲染它们

    可以定义多个命名空间,每个命名空间指向特定的路径

    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
简单示例
  1. 在路径:views/example.php 中定义视图
    <html>
    <head>
        <title>Example</title>
    </head>
    <body>
        <?php echo $foo; ?>
    </body>
    </html>
  2. 渲染视图
    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');
  3. 输出将是这样的
    <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,则调用视图引擎扩展。这意味着有更多的功能可用。

  1. 快速渲染参数
    <body>
        {{ $foo }}
    </body>

如何扩展视图

另一个 Pure 模板扩展允许扩展视图并覆盖内容。

  1. 要扩展视图
    @extends('view_filename')
    必须将 @extends 作为第一条语句
  2. 部分必须在父视图中定义
    @section('section_name')
  3. 部分可以按照以下方式覆盖
    @begin('section_name')
    <h1> HTML content </h1>
    @end
实际示例
  1. 在 views/template.php 中定义放置的父模板
    <html>
    <head>
        <title>Example</title>
    </head>
    <body>
        @section('content')
    </body>
    </html>
  2. 基于此模板定义一个新的视图
    @extends('template.php')
    
    @begin('content')
    <p>Hello View!</p>
    @end
  3. 输出将是这样的
    <html>
    <head>
        <title>Example</title>
    </head>
    <body>
        <p>Hello View</p>
    </body>
    </html>