将近一个月的期末预习,憋死了,昨天考完,算是半解放了,终于又可以愉快的玩耍了,就在昨天刚考完java出考场,就出了一个thinkphp5的牛逼RCE,12月份刚出了一个洞,现在又出了一个,想着复习完后要学一学这个框架,下面是学习笔记。
快速入门:https://www.kancloud.cn/thinkphp/thinkphp5_quickstart/478280 完全开发手册:http://www.php.cn/course/165.html
Composer安装和更新
curl -sS <https://getcomposer.org/installer> | php
mv composer.phar /usr/local/bin/composer
web目录
composer create-project topthink/think=5.0.* tp5 --prefer-dist
如果之前使用Composer安装的话,首先切换到你的tp5目录,然后使用下面的命令更新框架到最新版本(注意因为缓存关系,composer不一定是及时更新的):
composer update
目录结构
tp5
├─application 应用目录
├─extend 扩展类库目录(可定义)
├─public 网站对外访问目录
├─runtime 运行时目录(可定义)
├─vendor 第三方类库目录(Composer)
├─thinkphp 框架核心目录
├─build.php 自动生成定义文件(参考)
├─composer.json Composer定义文件
├─LICENSE.txt 授权说明文件
├─README.md README 文件
├─think 命令行工具入口
image.png
├─application 应用目录(可设置)
│ ├─index 模块目录(可更改)
│ │ ├─config.php 模块配置文件
│ │ ├─common.php 模块公共文件
│ │ ├─controller 控制器目录
│ │ ├─model 模型目录
│ │ └─view 视图目录
│ │
│ ├─command.php 命令行工具配置文件
│ ├─common.php 应用公共文件
│ ├─config.php 应用配置文件
│ ├─tags.php 应用行为扩展定义文件
│ ├─database.php 数据库配置文件
│ └─route.php 路由配置文件
核心框架目录的结构如下:
├─thinkphp 框架系统目录
│ ├─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 框架引导文件
URL访问
URL访问
ThinkPHP采用单一入口模式访问应用,对应用的所有请求都定向到应用的入口文件,系统会从URL参数中解析当前请求的模块、控制器和操作,下面是一个标准的URL访问格式:
<http://server/module/controller/action/param/value/>...)
<http://domainName/index.php/模块/控制器/操作方法>
其中index.php就称之为应用的入口文件(注意入口文件可以被隐藏,后面会提到)。
参数传入