TP5的安装
- composer安装
composer create-project topthink/think tp5
- 官网直接下载压缩包方式
项目默认绑定路径为框架目录下的application目录下
TP5目录结构
tp5(ROOT_PATH)
├─application(APP_PATH) 应用目录
│ ├─index 模块目录(可更改)
│ │ ├─config.php 模块配置文件
│ │ ├─common.php 模块公共文件
│ │ ├─controller 控制器目录
│ │ ├─model 模型目录
│ │ ├─view 视图目录
│ │ └─validate 验证目录
│ ├─demo 模块目录(可更改)
│ │ ├─controller 控制器目录
│ │ ├─model 模型目录
│ │ ├─view 视图目录
│ │ ├─config.php 模块配置文件
│ │ └─common.php 模块公共文件
│ ├─command.php 命令行工具配置文件
│ ├─common.php 应用公共文件
│ ├─config.php 应用配置文件
│ ├─tags.php 应用行为扩展定义文件
│ ├─database.php 数据库配置文件
│ └─route.php 路由配置文件
├─extend 扩展类库目录(可定义)
├─public 网站对外访问目录
│ ├─index.php 应用入口文件
│ └─static 静态资源目录
│ ├─css 样式目录
│ ├─js 脚本目录
│ └─img 图像目录
├─runtime 运行时目录(可定义)
├─vendor 第三方类库目录(Composer)
├─thinkphp(THINK_PATH) 框架系统目录
│ ├─lang 语言包目录
│ ├─library 框架核心类库目录
│ │ ├─think think 类库包目录
│ │ └─traits 系统 traits 目录
│ ├─tpl 系统模板目录
│ │
│ ├─.htaccess 用于 apache 的重写
│ ├─.travis.yml CI 定义文件
│ ├─base.php 框架基础文件
│ ├─composer.json composer 定义文件
│ ├─console.php 控制台入口文件
│ ├─convention.php 惯例配置文件
│ ├─helper.php 助手函数文件(可选)
│ ├─LICENSE.txt 授权说明文件
│ ├─phpunit.xml 单元测试配置文件
│ ├─README.md README 文件
│ └─start.php 框架引导文件
├─build.php 自动生成定义文件(参考)
├─composer.json Composer定义文件
├─LICENSE.txt 授权说明文件
├─README.md README 文件
└─think 命令行工具入口
TP5命令行快速创建控制器
php think make:controller index/demo
访问路径为
www.tp5.com/index.php/模块/控制器/方法名
TP5自动化搭建模块
框架根目录下的bulid.php文件移动application项目目录中
配置好build.php文件后 运行命令 php think build
'demo' => [
'__file__' => ['common.php'],
'__dir__' => ['behavior', 'controller', 'model', 'view'],
'controller' => ['Index', 'Test', 'UserType'],
'model' => ['User', 'UserType'],
'view' => ['index/index'],
],
demo表示模块名
_file_模块下成的配置文件名
_dir_文件目录
controller 控制器文件名
model model生成的文件名
view 视图生成文件
TP5函数助手
load_trait:快速导入Traits,PHP5.5以上无需调用
/**
* 快速导入Traits PHP5.5以上无需调用
* @param string $class trait库
* @param string $ext 类库后缀
* @return boolean
*/
load_trait($class, $ext = EXT)
exception:抛出异常处理
/**
* 抛出异常处理
* @param string $msg 异常消息
* @param integer $code 异常代码 默认为0
* @param string $exception 异常类
*
* @throws Exception
*/
exception($msg, $code = 0, $exception = '')
debug:记录时间(微秒)和内存使用情况
/**
* 记录时间(微秒)和内存使用情况
* @param string $start 开始标签
* @param string $end 结束标签
* @param integer|string $dec 小数位 如果是m 表示统计内存占用
* @return mixed
*/
debug($start, $end = '', $dec = 6)
lang:获取语言变量值
/**
* 获取语言变量值
* @param string $name 语言变量名
* @param array $vars 动态变量值
* @param string $lang 语言
* @return mixed
*/
lang($name, $vars = [], $lang = '')
config:获取和设置配置参数
/**
* 获取和设置配置参数
* @param string|array $name 参数名
* @param mixed $value 参数值
* @param string $range 作用域
* @return mixed
*/
config($name = '', $value = null, $range = '')
input:获取输入数据,支持默认值和过滤
/**
* 获取输入数据 支持默认值和过滤
* @param string $key 获取的变量名
* @param mixed $default 默认值
* @param string $filter 过滤方法
* @return mixed
*/
input($key = '', $default = null, $filter = null)
widget:渲染输出Widget
/**
* 渲染输出Widget
* @param string $name Widget名称
* @param array $data 传入的参数
* @return mixed
*/
widget($name, $data = [])
model:实例化Model
/**
* 实例化Model
* @param string $name Model名称
* @param string $layer 业务层名称
* @param bool $appendSuffix 是否添加类名后缀
* @return \think\Model
*/
model($name = '', $layer = 'model', $appendSuffix = false)
validate:实例化验证器
/**
* 实例化验证器
* @param string $name 验证器名称
* @param string $layer 业务层名称
* @param bool $appendSuffix 是否添加类名后缀
* @return \think\Validate
*/
validate($name = '', $layer = 'validate', $appendSuffix = false)
db:实例化数据库类
/**
* 实例化数据库类
* @param string $name 操作的数据表名称(不含前缀)
* @param array|string $config 数据库配置参数
* @param bool $force 是否强制重新连接
* @return \think\db\Query
*/
db($name = '', $config = [], $force = true)
controller:实例化控制器,格式:[模块/]控制器
/**
* 实例化控制器 格式:[模块/]控制器
* @param string $name 资源地址
* @param string $layer 控制层名称
* @param bool $appendSuffix 是否添加类名后缀
* @return \think\Controller
*/
controller($name, $layer = 'controller', $appendSuffix = false)
action:调用模块的操作方法,参数格式:[模块/控制器/]操作
/**
* 调用模块的操作方法 参数格式 [模块/控制器/]操作
* @param string $url 调用地址
* @param string|array $vars 调用参数 支持字符串和数组
* @param string $layer 要调用的控制层名称
* @param bool $appendSuffix 是否添加类名后缀
* @return mixed
*/
action($url, $vars = [], $layer = 'controller', $appendSuffix = false)
import:导入所需的类库,同java的Import,本函数有缓存功能
/**
* 导入所需的类库 同java的Import 本函数有缓存功能
* @param string $class 类库命名空间字符串
* @param string $baseUrl 起始路径
* @param string $ext 导入的文件扩展名
* @return boolean
*/
import($class, $baseUrl = '', $ext = EXT)
vendor:快速导入第三方框架类库,所有第三方框架的类库文件统一放到系统的Vendor目录下面
/**
* 快速导入第三方框架类库 所有第三方框架的类库文件统一放到 系统的Vendor目录下面
* @param string $class 类库
* @param string $ext 类库后缀
* @return boolean
*/
vendor($class, $ext = EXT)
dump:浏览器友好的变量输出
/**
* 浏览器友好的变量输出
* @param mixed $var 变量
* @param boolean $echo 是否输出 默认为true 如果为false 则返回输出字符串
* @param string $label 标签 默认为空
* @return void|string
*/
dump($var, $echo = true, $label = null)
url:Url生成
/**
* Url生成
* @param string $url 路由地址
* @param string|array $vars 变量
* @param bool|string $suffix 生成的URL后缀
* @param bool|string $domain 域名
* @return string
*/
url($url = '', $vars = '', $suffix = true, $domain = false)
session:Session管理
/**
* Session管理
* @param string|array $name session名称,如果为数组表示进行session设置
* @param mixed $value session值
* @param string $prefix 前缀
* @return mixed
*/
session($name, $value = '', $prefix = null)
cookie:Cookie管理
/**
* Cookie管理
* @param string|array $name cookie名称,如果为数组表示进行cookie设置
* @param mixed $value cookie值
* @param mixed $option 参数
* @return mixed
*/
cookie($name, $value = '', $option = null)
cache:缓存管理
/**
* 缓存管理
* @param mixed $name 缓存名称,如果为数组表示进行缓存设置
* @param mixed $value 缓存值
* @param mixed $options 缓存参数
* @param string $tag 缓存标签
* @return mixed
*/
cache($name, $value = '', $options = null, $tag = null)
trace:记录日志信息
/**
* 记录日志信息
* @param mixed $log log信息 支持字符串和数组
* @param string $level 日志级别
* @return void|array
*/
trace($log = '[think]', $level = 'log')
request:获取当前Request对象实例
/**
* 获取当前Request对象实例
* @return Request
*/
request()
response:创建普通Response对象实例
/**
* 创建普通 Response 对象实例
* @param mixed $data 输出数据
* @param int|string $code 状态码
* @param array $header 头信息
* @param string $type
* @return Response
*/
response($data = [], $code = 200, $header = [], $type = 'html')
view:渲染模板输出
/**
* 渲染模板输出
* @param string $template 模板文件
* @param array $vars 模板变量
* @param array $replace 模板替换
* @param integer $code 状态码
* @return \think\response\View
*/
view($template = '', $vars = [], $replace = [], $code = 200)
json:获取Json对象实例
/**
* 获取\think\response\Json对象实例
* @param mixed $data 返回的数据
* @param integer $code 状态码
* @param array $header 头部
* @param array $options 参数
* @return \think\response\Json
*/
json($data = [], $code = 200, $header = [], $options = [])
jsonp:获取Jsonp对象实例
/**
* 获取\think\response\Jsonp对象实例
* @param mixed $data 返回的数据
* @param integer $code 状态码
* @param array $header 头部
* @param array $options 参数
* @return \think\response\Jsonp
*/
jsonp($data = [], $code = 200, $header = [], $options = [])
xml:获取xml对象实例
/**
* 获取\think\response\Xml对象实例
* @param mixed $data 返回的数据
* @param integer $code 状态码
* @param array $header 头部
* @param array $options 参数
* @return \think\response\Xml
*/
xml($data = [], $code = 200, $header = [], $options = [])
redirect:获取Redirect对象实例
/**
* 获取\think\response\Redirect对象实例
* @param mixed $url 重定向地址 支持Url::build方法的地址
* @param array|integer $params 额外参数
* @param integer $code 状态码
* @return \think\response\Redirect
*/
redirect($url = [], $params = [], $code = 302)
abort:抛出HTTP异常
/**
* 抛出HTTP异常
* @param integer|Response $code 状态码 或者 Response对象实例
* @param string $message 错误信息
* @param array $header 参数
*/
abort($code, $message = null, $header = [])
halt:调试变量并且中断输出
/**
* 调试变量并且中断输出
* @param mixed $var 调试变量或者信息
*/
halt($var)
token:生成表单令牌
/**
* 生成表单令牌
* @param string $name 令牌名称
* @param mixed $type 令牌生成方法
* @return string
*/
token($name = '__token__', $type = 'md5')
TP5获取表单值的方法
- $_POST
- input(‘post.’)
- request()->post()
TP5分页的使用
Model层使用方法
$this->where($data)->order($order)->paginate(2);
试图层调用方法
$Categorys->render()