PHP框架_ThinkPHP基础
目录
1.ThinkPHP项目结构
2.ThinkPHP运行流程
3.ThinkPHP配置文件
4.ThinkPHP四种URL模式
5.ThinkPHP用户自定义函数
6.ThinkPHP模板展示及变量赋值
7.ThinkPHP模板引擎--循环
8.ThinkPHP模板引擎--判断
1.ThinkPHP项目结构
|ThinkPHP
|--App 用户文件
|--Common 存放当前项目的公告函数
|--Conf 项目的配置文件
|--Lang 项目的语言包
|--Lib 项目的控制器和模型
|--Runtime 项目运行时的文件
|--Tpl 项目的模板文件
|--ThinkPHP ThinkPHP核心文件
|--index.php 入口文件
//自动创建文件结构
#Common 存放当前项目的公告函数
#Conf 项目的配置文件
#Lang 项目的语言包
#Lib 项目的控制器和模型
#Runtime 项目运行时的文件
#Tpl 项目的模板文件 define("APP_NAME","App");
define("APP_PATH","./App/");
require "ThinkPHP/ThinkPHP.php";
2.ThinkPHP运行流程
/*
1.加载ThinkPHP.php
require "ThinkPHP/ThinkPHP.php"; 2.加载核心文件
./ThinkPHP/Lib/Core 3.加载项目的文件 分析url 调用相关控制器
m: module 模块 控制器
a: action 方法 aciotn=页面
*/
3.ThinkPHP配置文件
/*
1.首先加载:ThinkPHP/ conf/convention.php 2.再加载用户配置文件App/Conf/config.php 3.修改配置文件需要设置"APP_DEBUG"为"true",每次刷新网页都加载配置
*/
define("APP_DEBUG","true");
4.ThinkPHP四种URL模式
/*
模式 1 :默认模式 pathinfo
http://localhost/ThinkPHP/index.php/Index/user/id/1.html
模式 0 :普通模式
http://localhost/ThinkPHP/index.php?m=Index&a=user&id=1
模式 2 :重写模式
http://localhost/ThinkPHP/Index/user/id/1.html
模式 3 :兼容模式
http://localhost/ThinkPHP/index.php?s=/Index/user/id/1.html
*/
5.ThinkPHP用户自定义函数
定义在App/Common下,规定命名为common.php
6.ThinkPHP模板展示及变量赋值
//变量赋值
$name="Ryan";
$this->name = $name;
//变量赋值
$this->assign("age","11")->assign("sex","man");
//显示html模板
$this->display("index");
7.ThinkPHP模板引擎--循环
//name:要循环的数组
//id:数组中的项
//offset:数组起始位置
//length:要截取的数组长度
//empty:为空时默认输出
<volist name="demo" id="data" offset="2" length="2" empty="没有数据">
{$data.name}
</volist> <foreach name="demo" item="data"> </foreach> //eq = neq != gt > egt>= it < elt<= heq === nheq !==
//end默认为小于10 comparison="elt"设置为小于等于
<for start="1" end="10" comparison="elt" name="k">
{$k}
</for>
8.ThinkPHP模板引擎--判断
<!--if判断-->
<if condition="$num gt 10">
数字大于10
<elseif condition="$num lt 10"/>
数字小于10
<else/>
数字等于10
</if> <!--switch判断-->
<switch name="num">
<case value="11">数字大于10</case>
<case value="9" >数字小于10</case>
<default/>数字等于10
</switch>
<!--
<比较标签 name="变量名" value="比较的值"></比较标签>
-->
<eq name="num" value="10">num=10</eq>
<neq name="num" value="10">num!=10</neq> <eq name="num" value="10">num=10<else/>num!=10</eq> <compare name="num" value="10" type="eq">num=10<else/>num!=10</compare>
<!--区间判断 in notin between notbetween-->
<in name="num" value="10,11,12">在这个区间</in>
<in name="num" value="10,11,12">在这个区间<else/>不在这个区间</in> <notin name="num" value="1,2,3">不在这个区间</notin> <between name="num" value="1,20">num在1到20之间</between>
PHP框架_ThinkPHP基础的更多相关文章
- ABP框架实践基础篇之开发UI层
返回总目录<一步一步使用ABP框架搭建正式项目系列教程> 说明 其实最开始写的,就是这个ABP框架实践基础篇.在写这篇博客之前,又回头复习了一下ABP框架的理论,如果你还没学习,请查看AB ...
- day23 框架之基础加强
day23 框架之基础加强 今日任务 aptana(javascript的eclipse插件):http://www.cnblogs.com/terrylin/archive/2012/06/20/2 ...
- 关于Yii框架的基础知识
第一次写博文,也不知道怎么写,不太熟悉,带小伙伴学习一样我日常使用的Yii框架. PHP中的开发框架有很多,比如:ThinkPHP.Yii.CI.Laravel.Phalcon等.现在流行度最高的是L ...
- 一个标准的,兼容性很好的div仿框架的基础模型!
<!DOCTYPE html> <html > <head> <meta http-equiv="Content-Type" conten ...
- Java学习关于集合框架的基础接口--Collection接口
集合框架(Collection Framework)是Java最强大的子系统之一,位于java.util 包中.集合框架是一个复杂的接口与和类层次,提供了管理对象组的最新技术.Java集合框架标准 ...
- 整合SSM框架必备基础—SpringMVC(下)
在上一篇文章<整合SSM框架必备基础-SpringMVC(上)>中,胖达介绍了关于SpringMVC的诞生.优势以及执行流程等理论知识点,这篇文章打算在实操中加深一下对SpringMVC的 ...
- [LINQ2Dapper]最完整Dapper To Linq框架(一)---基础查询
此例子是使用LINQ2Dapper封装,效率优于EntityFramwork,并且支持.NetFramework和.NetCore框架,只依赖于Dapper 支持.net framework4.5.1 ...
- 手撸ORM浅谈ORM框架之基础篇
好奇害死猫 一直觉得ORM框架好用.功能强大集众多优点于一身,当然ORM并非完美无缺,任何事物优缺点并存!我曾一度认为以为使用了ORM框架根本不需要关注Sql语句如何执行的,更不用关心优化的问题!!! ...
- spring+springMVC+mybatis的框架项目基础环境搭建
上一个项目在后台用到spring+springMVC+mybatis的框架,先新项目初步需求也已经下来,不出意外的话,应该也是用这个框架组合. 虽然在之前activiti相关的学习中所用到的框架也是这 ...
随机推荐
- 关于View和VIewController的关系和理解
之前看过关老师的视频之后就有写关于视图切换的程序,不过那是很久之前了,那时候也不知道什么是View,什么是VIewController,就知道照着写.这次项目的时候,我又碰到了这个问题,我自以为比较能 ...
- 《A First Course in Probability》-chaper2-概率论公理
概率论自身有一套很深的理论体系,读过<几何原本>的读者会知道,伟大的欧几里得之所以伟大,是因为它基于几条最基本的公理,推导除了整个欧式几何学的理论体系,同样,在概率论这里,一切的推导都是源 ...
- 利用Trie树对字符串集合进行排序并计算特征值
该算法用于将一组乱序的字符串反序列化到一个Trie树中,这个过程即可视为对字符串进行了一次排序. 还可以通过调用 GetFeatureString 将该 Trie 树重新序列化. #include & ...
- 你不一定能做对的JavaScript闭包面试题
由工作中演变而来的面试题 这是一个我工作当中的遇到的一个问题,似乎很有趣,就当做了一道题去面试,发现几乎没人能全部答对并说出原因,遂拿出来聊一聊吧. 先看题目代码: function fun(n,o) ...
- hdoj 3635 Dragon Balls【并查集求节点转移次数+节点数+某点根节点】
Dragon Balls Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Tota ...
- Seeking USB Serial Com Port in Windows Automatically : via PID VID
After you read previous article, you might know how to operate a com port in Windows. But that ex ...
- photoshopcs5 win7安装报错的解决
因为之前安装了绿色中文破解版的PhotoShop CS5,虽然卸载了,但是注册表还可能残留了其它信息,导致在安装Adobe PhotoShop CS5英文版时一直显示 (Exit Code: 7 ER ...
- 常见的浏览器Hack技巧总结(转)
如果你经常需要做前端页面,那么你一定多多少少需要解决页面的浏览器兼容问题.而浏览器兼容问题大部分也集中在对IE系列的兼容.这里就总结一下对IE系列的CSS Hack,记录一下,方便以后查阅. IE H ...
- iOS-CGContextRef画各种图形例子
iOS-CGContextRef画各种图形例子 绘制效果图 绘制代码 - (void)drawRect:(CGRect)rect { //一个不透明类型的Quartz 2D绘画环境,相当于一个画布,你 ...
- C语言循环的嵌套
注:参考网络资源拟制,如雷同请见谅循环的嵌套:一个循环体语句中又包含另一个循环语句,称为循环嵌套.嵌套注意事项:1.使用循环嵌套时,内层循环和外层循环的循环控制变量不能相同.2.循环嵌套结构的书写,最 ...