zoukankan      html  css  js  c++  java
  • Thinkphp twig

    参考链接:thinkphp的twig模板实现

    使用composer安裝好Thinkphp 3.2.3

    composer create-project topthink/thinkphp your-project-name

    安裝完畢之後,在執行Twig的安裝命令

    composer require twig/twig:~1.0

    在ThinkLibraryThinkTemplateDriver下建立一個Twig.class.php文件

     1 <?php
     2 namespace ThinkTemplateDriver;
     3 /**
     4 * Twig模板引擎驱动
     5 */
     6 class Twig {
     7 
     8     /**
     9     * 渲染模板输出
    10     * @access public
    11     * @param string $templateFile 模板文件名
    12     * @param array $parameters 模板变量
    13     * @return void
    14     */
    15     public function fetch($templateFile, $parameters) {
    16         //THEME_PATH 是Thinkphp中的模板目录
    17         //CACHE_PATH 是Thinkphp中的缓存目录,无需修改
    18         $loader = new Twig_Loader_Filesystem(array(THEME_PATH));
    19         $twig = new Twig_Environment($loader, array(
    20             'cache' => CACHE_PATH
    21         ));
    22         $templateFile = substr($templateFile,strlen(THEME_PATH));
    23         //一行code的输出
    24         //echo $twig->render($templateFile,$parameters);
    25         //两行code的输出
    26         $template = $twig->loadTemplate($templateFile);
    27         echo $template->render($parameters);
    28     }
    29 }

    配置./Application/CommonConfconfig.php

    1 <?php
    2 return array(
    3     //'配置项'=>'配置值'
    4     'TMPL_ENGINE_TYPE'=>'Twig',
    5     'TMPL_L_DELIM' => '{{',// 模板引擎普通标签开始标记
    6     'TMPL_R_DELIM' => '}}',// 模板引擎普通标签结束标记
    7 );

    使用案例

    在index.php中添加一句

    require './vendor/autoload.php';

    就变成类似

    <?php
    // +----------------------------------------------------------------------
    // | ThinkPHP [ WE CAN DO IT JUST THINK ]
    // +----------------------------------------------------------------------
    // | Copyright (c) 2006-2014 http://thinkphp.cn All rights reserved.
    // +----------------------------------------------------------------------
    // | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
    // +----------------------------------------------------------------------
    // | Author: liu21st <liu21st@gmail.com>
    // +----------------------------------------------------------------------
    
    // 应用入口文件
    
    // 检测PHP环境
    if (version_compare(PHP_VERSION, '5.3.0', '<')) {
        die('require PHP > 5.3.0 !');
    }
    
    // 开启调试模式 建议开发阶段开启 部署阶段注释或者设为false
    define('APP_DEBUG', true);
    
    // 定义应用目录
    define('APP_PATH', './Application/');
    //引入composer
    require './vendor/autoload.php';
    // 引入ThinkPHP入口文件
    require './ThinkPHP/ThinkPHP.php';
    
    // 亲^_^ 后面不需要任何代码了 就是如此简单

    ./Application/Home/Controller/IndexController.class.php

     1 <?php
     2 namespace HomeController;
     3 
     4 use ThinkController;
     5 
     6 class IndexController extends Controller
     7 {
     8     public function index()
     9     {    
    10         $this->assign("foo",200);
    11         $this->display("index");
    12     }
    13 }

    ./Application/Home/View/Index/index.html

    1 <!Doctype html>
    2 <html>
    3 <head>
    4     <meta charset='utf-8'>
    5 </head>
    6 <body>
    7     {{ foo }}
    8 </body>
    9 </html>

    TODO:

    1. 可以通过Twig显示Form
    2. Twig的cache的及时更新html的修改,目前需要手动删除缓存文件之后,才会显示修改之后的Html内容
  • 相关阅读:
    用fnmatch函数进行字符通配
    activity和service之间的相互通信方法
    IGMP协议简介
    Android2.2快速入门
    Android开发之旅:HelloWorld项目的目录结构
    Android的五大基本组件
    Android Service 组件
    TCP交互数据流 成块数据流
    为什么要进行IP选路?
    embOS实时操作系统 任务通讯
  • 原文地址:https://www.cnblogs.com/fsong/p/5144664.html
Copyright © 2011-2022 走看看