ThinkPHP模板替换与系统常量及应用实例教程

本文讲述了ThinkPHP模板替换与系统常量及应用,是ThinkPHP项目开发的基础知识,有必要加以牢固掌握。具体如下:

默认的模板替换规则:

../Public : 会被替换成当前项目的公共模板目录 通常是 / 项目目录 /Tpl/default/Public/
__PUBLIC__ :会被替换成当前网站的公共目录 通常是 /Public/
__TMPL__ : 会替换成项目的模板目录 通常是 / 项目目录 /Tpl/default/
__ROOT__ : 会替换成当前网站的地址(不含域名)
__APP__ : 会替换成当前项目的 URL 地址 (不含域名)
__URL__ : 会替换成当前模块的 URL 地址(不含域名)
__ACTION__ :会替换成当前操作的 URL 地址 (不含域名)
__SELF__ : 会替换成当前的页面 URL

还可以通过在项目配置文件中配置TMPL_PARSE_STRING的值来自定义替换规则,如:

TMPL_PARSE_STRING => array(
   '__PUBLIC__' => '/Common' ,  // 更改默认的 __PUBLIC__ 替换规则
   '__UPLOAD__' => '/Public/Uploads/' ,  // 增加新的上传路径替换规则
)

示例:

文件路径:/Home/Tpl/default/User/index.html,代码如下:

 <p>__ROOT__代表当前网站的网址</p>
 <p>__URL__代表当前模块的URL地址/index.php/User</p>
 <p>../Public代表/aoli/Tpl/default/Public</p>
 <p>__PUBLIC__代表项目公共文件目录/Public</p>
 <p>__TMPL__代表当前项目的模板目录/aoli/Tpl/default/</p>
 <p>__APP__代表当前项目的入口文件地址/index.php</p>
 <p>__ACTION__代表当前的操作地址/index.php/User/index</p>
 <p>__SELF__代表当前URL地址/index.php/User/</p>
 <p>__UPLOAD__</p>
 <form action="__URL__/add" method="post">
  <input type="text" name="username" />
  <input type="submit" value="注册" />
 </form>

文件路径:/Home/Lib/Action/UserAction.class.php,代码如下:

<?php
 class UserAction extends Action {
    function index(){
      $this->display();
    }
    function add(){
      dump($_POST);
    }
 }
?>

访问路径:http://localhost/index.php/User/index输入内容,点击注册按钮后跳转到http://localhost/index.php/User/add并执行User模块下的add方法,输出提交的内容。

希望本文所述对大家的ThinkPHP程序设计有所帮助。

(0)

相关推荐

  • thinkphp3.2中Lite文件替换框架入口文件或应用入口文件的方法

    本文实例讲述了thinkphp3.2中Lite文件替换框架入口文件或应用入口文件的方法.分享给大家供大家参考.具体分析如下: 3.2版本支持根据当前的运行环境生成Lite文件,可以替换框架的入口文件或者应用入口文件,提高运行效率. 我们的建议是在生产环境中关闭调试模式后生成Lite文件. 注意,目前SAE平台不支持直接生成Lite文件. 生成Lite文件 要生成Lite文件,需要在入口文件中增加常量定义: 复制代码 代码如下: define('BUILD_LITE_FILE',true); 默认

  • Thinkphp中的curd应用实用要点

    这个主要闲的没事给大家写一下curd的具体应用,当然这里边主要讲curd,我做的是用户的增删改查,没有用三大自动 首先 复制代码 代码如下: class IndexAction extends Action { public function index(){ header("Content-Type:text/html; charset=utf-8″); $user=M('user'); $list=$user->select(); $this->assign('user',$li

  • thinkPHP5.0框架URL访问方法详解

    本文实例讲述了thinkPHP5.0框架URL访问方法.分享给大家供大家参考,具体如下: URL设计 ThinkPHP5.0在没有启用路由的情况下典型的URL访问规则是: http://serverName/index.php(或者其它应用入口文件)/模块/控制器/操作/[参数名/参数值...] 支持切换到命令行访问,如果切换到命令行模式下面的访问规则是: >php.exe index.php(或者其它应用入口文件) 模块/控制器/操作/[参数名/参数值...] 可以看到,无论是URL访问还是命

  • ThinkPHP5实现作业管理系统中处理学生未交作业与已交作业信息的方法

    本文实例讲述了ThinkPHP5实现作业管理系统中处理学生未交作业与已交作业信息的方法.分享给大家供大家参考,具体如下: 在作业管理系统中,学生登陆到个人中心后可以通过左侧的菜单查看自己已经提交的作业和未提交作业.那么在系统中如何实现这些数据的查询的呢?首先我们需要弄清楚学生(Student).班级(class).作业提交表(Submit)这三个表之间的关系. 1. 每个学生都属于一个班级 2. 班级里的每个学生都会被布置同样的作业 3. 学生提交作业后会在作业提交表中添加响应的记录,如学生的I

  • ThinkPHP应用模式扩展详解

    ThinkPHP的应用模式使得开发人员对核心框架进行改造较以往更为得心应手,并且可以让你的应用适应更多的环境和不同的需求.每个应用模式都有自己的模式定义文件,相对于ThinkPHP3.1版本,ThinkPHP3.2版本对应用模式的扩展更加明确和清晰,在ThinkPHP3.1版本中定义了Cli.Lite.Thin.AMF.PHPRPC.REST模式,其定义方式和ThinkPHP3.2版本的方式大同小异,如有需要可以参考修改,其中Cli模式被ThinkPHP框架内置,不用单独定义Cli模式即可正常使

  • thinkPHP5.0框架命名空间详解

    本文实例讲述了thinkPHP5.0框架命名空间.分享给大家供大家参考,具体如下: 命名空间 ThinkPHP采用命名空间方式定义和自动加载类库文件,有效的解决了多模块和Composer类库之间的命名空间冲突问题,并且实现了更加高效的类库自动加载机制. 如果不清楚命名空间的基本概念,可以参考PHP手册:PHP命名空间 特别注意的是,如果你需要调用PHP内置的类库,或者第三方没有使用命名空间的类库,记得在实例化类库的时候加上 \,例如: // 错误的用法 $class = new stdClass

  • thinkPHP5.0框架应用请求生命周期分析

    本文实例讲述了thinkPHP5.0框架应用请求生命周期.分享给大家供大家参考,具体如下: 本篇内容我们对ThinkPHP5.0的应用请求的生命周期做大致的介绍,以便于开发者了解整个执行流程. 1.入口文件 用户发起的请求都会经过应用的入口文件,通常是 public/index.php文件.当然,你也可以更改或者增加新的入口文件. 通常入口文件的代码都比较简单,一个普通的入口文件代码如下: // 应用入口文件 // 定义项目路径 define('APP_PATH', __DIR__ . '/..

  • thinkPHP5.0框架引入Traits功能实例分析

    本文实例讲述了thinkPHP5.0框架引入Traits功能.分享给大家供大家参考,具体如下: ThinkPHP 5.0开始采用trait功能(PHP5.4+)来作为一种扩展机制,可以方便的实现一个类库的多继承问题. Traits 是一种为类似 PHP 的单继承语言而准备的代码复用机制.Trait 为了减少单继承语言的限制,使开发人员能够自由地在不同层次结构内独立的类中复用方法集.Traits和类组合的语义是定义了一种方式来减少复杂性,避免传统多继承和混入类(Mixin)相关的典型问题. 但由于

  • ThinkPHP行为扩展Behavior应用实例详解

    本文以实例的形式详细介绍了ThinkPHP的行为扩展Behavior的实现方法,有助于读者更灵活的掌握ThinkPHP的开发,具体步骤如下: ThinkPHP 行为扩展 (Behavior) 流程: 最先是读取配置文件信息: $mode = include is_file(CONF_PATH.'core.php')?CONF_PATH.'core.php':MODE_PATH.APP_MODE.'.php'; 读取配置文件信息 ThinkPHP\Mode\common.php // 行为扩展定义

  • ThinkPHP写第一个模块应用

    找到项目文件夹下面的Lib/Action这个目录,在下面有个创建好的例子IndexAction.class.php,加入我们创建的是admin这个项目,那么./admin/Lib/Action/IndexAction.class.php,这个模块是默认加载的模块.在ThinkPHP中,自动加载的动作.方法.操作等等都是以index命名的. 下面,我们创建一个自己的模块,比如UserAction,class.php(注意命名规则),我们编辑这个文件: 复制代码 代码如下: <?php //先继承A

  • 解密ThinkPHP3.1.2版本之独立分组功能应用

    ThinkPHP的分组功能是广为开发者使用的一个具有很大实用价值的功能,该功能可以解决中大型项目情况中MVC分层文件过多导致不易管理的问题. 而ThinkPHP3.1.2版本添加的独立分组功能则为此类问题提出了新的解决思路,更加适合组件化的开发模式.我们就此了解下这一功能. 1.概述 独立分组功能不影响原有分组模式的运行,并且原有分组模式仅需移动目录结构即可完成独立分组模式的升级,无需任何应用代码的改动. 而且新的独立分组可以很方便的独立装卸和移动,可以摆脱原来普通分组文件分散在各个不同的目录下

随机推荐