目录

  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 入口文件

  1. //自动创建文件结构
  2. #Common 存放当前项目的公告函数
  3. #Conf 项目的配置文件
  4. #Lang 项目的语言包
  5. #Lib 项目的控制器和模型
  6. #Runtime 项目运行时的文件
  7. #Tpl 项目的模板文件
  8.  
  9. define("APP_NAME","App");
  10. define("APP_PATH","./App/");
  11. require "ThinkPHP/ThinkPHP.php";

2.ThinkPHP运行流程

  1. /*
  2. 1.加载ThinkPHP.php
  3. require "ThinkPHP/ThinkPHP.php";
  4.  
  5. 2.加载核心文件
  6. ./ThinkPHP/Lib/Core
  7.  
  8. 3.加载项目的文件 分析url 调用相关控制器
  9. m: module 模块 控制器
  10. a: action 方法 aciotn=页面
  11. */

3.ThinkPHP配置文件

  1. /*
  2. 1.首先加载:ThinkPHP/ conf/convention.php
  3.  
  4. 2.再加载用户配置文件App/Conf/config.php
  5.  
  6. 3.修改配置文件需要设置"APP_DEBUG"为"true",每次刷新网页都加载配置
  7. */
  8. define("APP_DEBUG","true");

4.ThinkPHP四种URL模式

  1. /*
  2. 模式 1 :默认模式 pathinfo
  3. http://localhost/ThinkPHP/index.php/Index/user/id/1.html
  4. 模式 0 :普通模式
  5. http://localhost/ThinkPHP/index.php?m=Index&a=user&id=1
  6. 模式 2 :重写模式
  7. http://localhost/ThinkPHP/Index/user/id/1.html
  8. 模式 3 :兼容模式
  9. http://localhost/ThinkPHP/index.php?s=/Index/user/id/1.html
  10. */

5.ThinkPHP用户自定义函数

  定义在App/Common下,规定命名为common.php

6.ThinkPHP模板展示及变量赋值

  1. //变量赋值
  2. $name="Ryan";
  3. $this->name = $name;
  4. //变量赋值
  5. $this->assign("age","11")->assign("sex","man");
  6. //显示html模板
  7. $this->display("index");

7.ThinkPHP模板引擎--循环

  1. //name:要循环的数组
  2. //id:数组中的项
  3. //offset:数组起始位置
  4. //length:要截取的数组长度
  5. //empty:为空时默认输出
  6. <volist name="demo" id="data" offset="2" length="2" empty="没有数据">
  7. {$data.name}
  8. </volist>
  9.  
  10. <foreach name="demo" item="data">
  11.  
  12. </foreach>
  13.  
  14. //eq = neq != gt > egt>= it < elt<= heq === nheq !==
  15. //end默认为小于10 comparison="elt"设置为小于等于
  16. <for start="1" end="10" comparison="elt" name="k">
  17. {$k}
  18. </for>

8.ThinkPHP模板引擎--判断

  1. <!--if判断-->
  2. <if condition="$num gt 10">
  3. 数字大于10
  4. <elseif condition="$num lt 10"/>
  5. 数字小于10
  6. <else/>
  7. 数字等于10
  8. </if>
  9.  
  10. <!--switch判断-->
  11. <switch name="num">
  12. <case value="11">数字大于10</case>
  13. <case value="9" >数字小于10</case>
  14. <default/>数字等于10
  15. </switch>

  16. <!--
  17. <比较标签 name="变量名" value="比较的值"></比较标签>
  18. -->
  19. <eq name="num" value="10">num=10</eq>
  20. <neq name="num" value="10">num!=10</neq>
  21.  
  22. <eq name="num" value="10">num=10<else/>num!=10</eq>
  23.  
  24. <compare name="num" value="10" type="eq">num=10<else/>num!=10</compare>

  25. <!--区间判断 in notin between notbetween-->
  26. <in name="num" value="10,11,12">在这个区间</in>
  27. <in name="num" value="10,11,12">在这个区间<else/>不在这个区间</in>
  28.  
  29. <notin name="num" value="1,2,3">不在这个区间</notin>
  30.  
  31. <between name="num" value="1,20">num在1到20之间</between>

PHP框架_ThinkPHP基础的更多相关文章

  1. ABP框架实践基础篇之开发UI层

    返回总目录<一步一步使用ABP框架搭建正式项目系列教程> 说明 其实最开始写的,就是这个ABP框架实践基础篇.在写这篇博客之前,又回头复习了一下ABP框架的理论,如果你还没学习,请查看AB ...

  2. day23 框架之基础加强

    day23 框架之基础加强 今日任务 aptana(javascript的eclipse插件):http://www.cnblogs.com/terrylin/archive/2012/06/20/2 ...

  3. 关于Yii框架的基础知识

    第一次写博文,也不知道怎么写,不太熟悉,带小伙伴学习一样我日常使用的Yii框架. PHP中的开发框架有很多,比如:ThinkPHP.Yii.CI.Laravel.Phalcon等.现在流行度最高的是L ...

  4. 一个标准的,兼容性很好的div仿框架的基础模型!

    <!DOCTYPE html> <html > <head> <meta http-equiv="Content-Type" conten ...

  5. Java学习关于集合框架的基础接口--Collection接口

     集合框架(Collection  Framework)是Java最强大的子系统之一,位于java.util 包中.集合框架是一个复杂的接口与和类层次,提供了管理对象组的最新技术.Java集合框架标准 ...

  6. 整合SSM框架必备基础—SpringMVC(下)

    在上一篇文章<整合SSM框架必备基础-SpringMVC(上)>中,胖达介绍了关于SpringMVC的诞生.优势以及执行流程等理论知识点,这篇文章打算在实操中加深一下对SpringMVC的 ...

  7. [LINQ2Dapper]最完整Dapper To Linq框架(一)---基础查询

    此例子是使用LINQ2Dapper封装,效率优于EntityFramwork,并且支持.NetFramework和.NetCore框架,只依赖于Dapper 支持.net framework4.5.1 ...

  8. 手撸ORM浅谈ORM框架之基础篇

    好奇害死猫 一直觉得ORM框架好用.功能强大集众多优点于一身,当然ORM并非完美无缺,任何事物优缺点并存!我曾一度认为以为使用了ORM框架根本不需要关注Sql语句如何执行的,更不用关心优化的问题!!! ...

  9. spring+springMVC+mybatis的框架项目基础环境搭建

    上一个项目在后台用到spring+springMVC+mybatis的框架,先新项目初步需求也已经下来,不出意外的话,应该也是用这个框架组合. 虽然在之前activiti相关的学习中所用到的框架也是这 ...

随机推荐

  1. GraphViz特性笔记(一)

    默认纵向,使用“rankdir="LR";”可使视图横向排列: 定义节点可以单独列出,“0;”方便自动生成: “edge[fontname="微软雅黑"];”设 ...

  2. 详解集群内Session高可用的实现原理

    在这个互联网高度发达的时代,许多应用的用户动辄成百上千万,甚至上亿.为了支持海量用户的访问,应用服务器集群这种水平扩展的方式是最常用的.这种情形下,就会涉及到许多单机环境下完全不需要考虑的问题,这其中 ...

  3. java对Ldap操作2

    package ldap.pojo;import java.util.List;/** * @author 张亮  * ldap用户属性信息数据类 */public class LdapPersonI ...

  4. thinkphp xml编码函数

    /** * XML编码 * @param mixed $data 数据 * @param string $root 根节点名 * @param string $item 数字索引的子节点名 * @pa ...

  5. AnonymousType匿名类型和对象之间的转换

    本文转载:http://www.cnblogs.com/dean-Wei/p/3150553.html 一.匿名对象转换为对象. 1.问题: 2.解决方案:强制指定类型. 解决之. 二. 对象转换为匿 ...

  6. MySQL内存体系架构及参数总结 ---图解

    http://www.cnblogs.com/kissdb/p/4009614.html 内存结构: Mysql 内存分配规则是:用多少给多少,最高到配置的值,不是立即分配 图只做大概参考 全局缓存包 ...

  7. Java基础知识强化之集合框架笔记28:ArrayList集合练习之去除ArrayList集合中的重复字符串元素(升级)

    1. 需求:ArrayList去除集合中字符串的重复值(字符串的内容相同)     要求:不能创建新的集合,就在以前的集合上做. 2. 代码示例之 去除集合中重复元素,不创建新的集合: package ...

  8. 【Android】广播BrocastReceiver

    1.Android中广播主要分为两种:标准广播和有序广播. 标准广播:完全异步执行.广播发出后,所有的广播接收器几乎在同一刻收到广播事件,没有先后顺序之分. 优点:效率高 缺点:不能被截断 有序广播: ...

  9. Customizing the Test Runner

    There are several situations where you want to customize Robolectric's test runner to perform some o ...

  10. rabbitmq 消息持久化之receive and send

    二: 任务分发 &消息持久化   启用多个接收端的时候如果某一个receive 关闭要保证消息有反馈是否收到   send端 #-*- coding: UTF-8 -*-import pika ...