文章目录

  • 开发手册
  • 一. MVC
  • 二. 安装 composer
  • 三. 下载安装tp6源码 与 视图
    • 3.1 tp6 安装
    • 3.2 视图安装
    • 3.3 视图的理解
    • 3.4 模板变量
    • 3.5 视图应用
      • 3.5.1 标签的运算符
      • 3.5.2 模板函数
      • 3.5.3 循环标签
      • 3.5.4 volist 循环标签
      • 3.5.5 if 判断标签
      • 3.5.6 switch 判断标签
      • 3.5.7 文件包含
  • 四. 单应用多应用切换
  • 五. 一些关键目录与文件
    • 5.1 单应用模式目录
    • 5.2 多应用模式目录
  • 六. 系统环境配置

开发手册

https://www.kancloud.cn/manual/thinkphp6_0

一. MVC

model view controller

  • 控制器:负责转发请求,处理请求
  • 视图:图像界面设计
  • 模型:功能算法等具体功能

二. 安装 composer

https://docs.phpcomposer.com/

https://www.phpcomposer.com/

三. 下载安装tp6源码 与 视图

3.1 tp6 安装

https://packagist.org/packages/topthink/think

在web目录下执行安装

安装测试
查看当前安装的tp6版本
php think version
thinkphp6 测试

3.2 视图安装

tp6 的 视图由 \think\View 类配合驱动(模板引擎驱动类),新版仅内置了 PHP 原生的模板引擎,所以需要自行下载相关TP引擎拓展

在 composer 仓库中可找到相关扩展

https://packagist.org/

composer require topthink/think-view

3.3 视图的理解

  • Index类对应view下面的目录
  • index方法对应view下面的目录里的静态文件

3.4 模板变量

  • assign() :方法赋值属于全局变量赋值
  • 模板输出 {$name}

控制器

class Index extends BaseController
{public function index(){//        模板变量赋值View::assign('name','wpsec');View::assign('email','123@admin.com');
//        在数组中批量赋值View::assign(['name' => '张三','email' => '321@admin.com']);return View::fetch();}

视图

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
姓名:{$name}
<br>
邮箱:{$email}
</body>
</html>

3.5 视图应用

标签的一些基础知识

  • 普通标签:主要用于输出变量,函数过滤和一些基本运算操作
  • XML标签:标签库标签,主要用于逻辑判断,控制和循环输出,并且可扩展

3.5.1 标签的运算符

控制器文件

public function index(){View::assign('a',100);View::assign('b',21);return View::fetch();
}

视图文件

<div>{$a+$b}</div>
<div>{$a-$b}</div>
<div>{$a*$b}</div>
<div>{$a/$b}</div>
<div>{$a%$b}</div>
<div>{$a++}</div>
<div>{++$a}</div>
<div>{$a--}</div>
<div>{--$a}</div>
<div>{$c ? '存在' : '不存在'}</div>

3.5.2 模板函数

控制器文件

public function index(){View::assign('time',1576048640);View::assign('num',10.0032);View::assign('str','OUyangKE');View::assign('arr',['张三','李四','王二']);return View::fetch();
}

视图文件

<div>{$time|date='Y-m-d H:i:s'}</div>
<div>{$num|format='%02d'}</div>
<div>{$str|upper}</div>
<div>{$str|lower}</div>
<div>{$arr|first}</div>
<div>{$arr|last}</div>
<div>{$default|default="张三"}</div>
<div>{$str|substr=0,3}</div>
<div>{$str|md5}</div>
<div>{$str|lower|substr=0,3}</div>

3.5.3 循环标签

  • foreach 标签的用法和PHP语法非常接近,用于循环输出数组或者对象的属性

控制器文件

public function index(){$arr = [['id' => 1,'name' => '张三'],['id' => 2,'name' => '李四'],['id' => 3,'name' => '王二']];View::assign('arr',$arr);return View::fetch();
}

视图文件

{foreach $arr as $v}<div><span>ID:{$v['id']}</span><span>姓名:{$v['name']}</span></div>
{/foreach}

3.5.4 volist 循环标签

  • 二维数组的结果输出
  • name 模板赋值的变量名称
  • id 当前的循环变量,可以随意起名
  • key 下标,从1开始,默认变量i
  • offset 开始行数
  • length 获取行数
  • empty 如果数据为空,显示此文字

视图文件

{volist name="arr" id="v" key="k"  offset="1" length="2"}<div><span>ID:{$v['id']}</span><span>姓名:{$v['name']}</span><span>下标:{$k}</span></div>
{/volist}

3.5.5 if 判断标签

控制器文件

public function index(){View::assign('status',1);View::assign('order_status',4);return View::fetch();
}

视图文件

{if $status == 1}<div>开启</div>
{/if}{if $status == 0}<div>关闭</div>
{else/}<div>开启</div>
{/if}{if $order_status == 0}<div>未支付</div>
{elseif $order_status == 1/}<div>已支付 待发货</div>
{elseif $order_status == 2/}<div>已发货 待收货</div>
{elseif $order_status == 3/}<div>已收货 待评论</div>
{elseif $order_status == 4/}<div>已完成</div>
{/if}

3.5.6 switch 判断标签

视图文件

{switch $order_status}{case 0 }<div>未支付</div>{/case}{case 1 }<div>已支付 待发货</div>{/case}{case 2 }<div>已发货 待收货</div>{/case}{case 3 }<div>已收货 待评论</div>{/case}{case 4 }<div>已完成</div>{/case}
{/switch}

3.5.7 文件包含

  • include 标签,引入模版文件
  • load 标签,引入资源文件(css、js)
{include file="public/header" /}
{include file="public/left" /}{load href="/static/layui/css/layui.css" /}
{load href="/static/layui/layui.js" /}{include file="public/tail" /}

四. 单应用多应用切换

修改public 下的 .htaccess 文件,将访问路径重写到index.php/的最后面,在 index.php 后加入一个?,将兼容路由,不在显示index.php,直接在后面跟应用路径

多应用插件

下载插件

composer require topthink/think-multi-app

修改config/app.php中的 开启多应用自动加载 auto_multi_app => true, 如果没有的话不用更改 然后就可以正常访问了
tp6的应用默认在index目录下,没有的自己创建,创建好后把controller目录放进去

五. 一些关键目录与文件

5.1 单应用模式目录

www  WEB部署目录(或者子目录)
├─app           应用目录
│  ├─controller      控制器目录
│  ├─model           模型目录
│  ├─ ...            更多类库目录
│  │
│  ├─common.php         公共函数文件
│  └─event.php          事件定义文件
│
├─config                配置目录
│  ├─app.php            应用配置
│  ├─cache.php          缓存配置
│  ├─console.php        控制台配置
│  ├─cookie.php         Cookie配置
│  ├─database.php       数据库配置
│  ├─filesystem.php     文件磁盘配置
│  ├─lang.php           多语言配置
│  ├─log.php            日志配置
│  ├─middleware.php     中间件配置
│  ├─route.php          URL和路由配置
│  ├─session.php        Session配置
│  ├─trace.php          Trace配置
│  └─view.php           视图配置
│
├─view            视图目录
├─route                 路由定义目录
│  ├─route.php          路由定义文件
│  └─ ...
│
├─public                WEB目录(对外访问目录)
│  ├─index.php          入口文件
│  ├─router.php         快速测试文件
│  └─.htaccess          用于apache的重写
│
├─extend                扩展类库目录
├─runtime               应用的运行时目录(可写,可定制)
├─vendor                Composer类库目录
├─.example.env          环境变量示例文件
├─composer.json         composer 定义文件
├─LICENSE.txt           授权说明文件
├─README.md             README 文件
├─think                 命令行入口文件

5.2 多应用模式目录

www  WEB部署目录(或者子目录)
├─app           应用目录
│  ├─app_name           应用目录
│  │  ├─common.php      函数文件
│  │  ├─controller      控制器目录
│  │  ├─model           模型目录
│  │  ├─view            视图目录
│  │  ├─config          配置目录
│  │  ├─route           路由目录
│  │  └─ ...            更多类库目录
│  │
│  ├─common.php         公共函数文件
│  └─event.php          事件定义文件
│
├─config                全局配置目录
│  ├─app.php            应用配置
│  ├─cache.php          缓存配置
│  ├─console.php        控制台配置
│  ├─cookie.php         Cookie配置
│  ├─database.php       数据库配置
│  ├─filesystem.php     文件磁盘配置
│  ├─lang.php           多语言配置
│  ├─log.php            日志配置
│  ├─middleware.php     中间件配置
│  ├─route.php          URL和路由配置
│  ├─session.php        Session配置
│  ├─trace.php          Trace配置
│  └─view.php           视图配置
│
├─public                WEB目录(对外访问目录)
│  ├─index.php          入口文件
│  ├─router.php         快速测试文件
│  └─.htaccess          用于apache的重写
│
├─extend                扩展类库目录
├─runtime               应用的运行时目录(可写,可定制)
├─vendor                Composer类库目录
├─.example.env          环境变量示例文件
├─composer.json         composer 定义文件
├─LICENSE.txt           授权说明文件
├─README.md             README 文件
├─think                 命令行入口文件

六. 系统环境配置

官方推荐使用环境变量的方式管理配置项(config目录)
环境变量管理
它是一个类文件,命名空间为:think\facade\env

写在一个叫 .env 的环境变量管理器里,没有的自己创建
书写配置项规则一般使用下划线法:
配置文件名 下划线 配置项

;开启跟踪器
app_trace = true
;开启调试模式
app_debug = true;数据库配置项
database_type = 'mysql'
database_hostname = '127.0.0.1'
database_database = 'tp6'
database_username = 'root'
database_password = 'root'
database_hostport = '3306'
database_charset = 'utf8'
database_debug = true

然后回到刚刚配置的配置文件中
使用 use 导入 env 这个类,命名空间为:think\facade\env

导入之后就可以使用 env 这个类中的方法了,修改源配置文件,使用get()方法让这个配置文件受我们的 环境变量管理器控制。

测试环境变量是否生效

PHP 开发 ThinkPHP6 框架学习 一相关推荐

  1. PHP语言Web开发ThinkPhp6框架搭建

    项目介绍 一款 PHP 语言基于 ThinkPhp6.x.Layui.MySQL等框架精心打造的一款模块化.插件化.高性能的前后端分离架构敏捷开发框架,可用于快速搭建前后端分离后台管理系统,本着简化开 ...

  2. Python Web开发——Django框架学习

    文章目录 Web开发简介 Web应用技术 Web前端开发 Web后端开发 使用 Django 开发后端服务 项目目标 管理员操作 登录界面 客户管理界面 添加客户界面 药品管理界面 添加药品界面 订单 ...

  3. Python开发-flask框架学习

    最近闲来无事,帮别人一起看看python3与flask,据说他想搞个登录注册的小demo,然后就给看了下,顺便简单的跟他说明了下.本文只是记录我在给别人讲解怎么使用python3与flask还有mon ...

  4. linux mipi驱动分析_寒武纪社招内推数字IC设计、DSI驱动、软件架构、产品经理、芯片架构、工具链开发、深度学习、FAE工程师...

    点击上方蓝字关注我吧! 为什么内推更靠谱?内推是基于人脉关系链的推荐,其背后有一定的信用背书,靠谱的人推荐的人相对也会比较靠谱,所以企业一般职位都是从内部开始分享的,相较于自己海投简历,内推的效率和成 ...

  5. TensorRT是NVIDIA开发的深度学习推理工具,只支持推理,不支持训练 引

    . TensorRT是NVIDIA开发的深度学习推理工具,只支持推理,不支持训练:   目前TensorRT3已经支持Caffe.Caffe2.TensorFlow.MxNet.Pytorch等主流深 ...

  6. jQuery框架学习第二天:jQuery中万能的选择器

    jQuery框架学习第一天:开始认识jQuery jQuery框架学习第二天:jQuery中万能的选择器 jQuery框架学习第三天:如何管理jQuery包装集 jQuery框架学习第四天:使用jQu ...

  7. 微软一站式开发技术框架解决方案 年内展望

    微软一站式开发技术框架解决方案 (CodeFx) 自成立至今已有半年.在这半年里,我们完成了130个代码示例,主要覆盖了COM.数据访问.库加载.进程间通信.Office开发.WinForms等技术. ...

  8. ssm框架requestmapping找不到_框架学习,就是介么简单

    框架学习 程序员凯小白 最近实训ssm框架,SSM框架,是Spring + Spring MVC + MyBatis的缩写,这个是继SSH之后,目前比较主流的Java EE企业级框架,适用于搭建各种大 ...

  9. rose框架学习总结

    rose框架学习总结 rose框架为paoding rose框架 具体可见https://code.google.com/p/paoding-rose/ 1   对rose框架的整体认识 1.1B/S ...

最新文章

  1. linux文本处理工具之grep与正则表达式语法
  2. LINUX_egrep及扩展正则表达式
  3. Java生鲜电商平台-秒杀系统微服务架构设计与源码解析实战
  4. python工作方法_用python开始一天工作
  5. Java并发编程实战_福州java编程实战培训班排名
  6. configure: error: zlib library not found
  7. vs2019编译c语言提示有病毒,关于VS2019代码编译的问题(C++)
  8. 百度再显管理变革决心 副总裁郑子斌离职
  9. RVC使用指南(三)-对象管理
  10. Spark MLlib垃圾邮件分类示例
  11. 42.从非托管磁盘创建虚拟机
  12. 不要以为写写代码就是计算机科学
  13. 佛,我心中的一朵莲花
  14. jike2012年5月实习题
  15. 计算机的硬盘驱动器是一种,计算机中有两个硬盘驱动器,如何在另一个硬盘驱动器上安装系统?...
  16. Pend Lists
  17. qml 文本框获取焦点
  18. jxl 删除excel重复的行
  19. NC:宏基因组联合宏蛋白组分析揭示土壤微生物降解多酚
  20. Spring Doc OpenAPI3.0 抛弃SpringFox拥抱SpringDoc

热门文章

  1. VIVADO eco 功能
  2. 通过Z-Order技术加速Hudi大规模数据集分析方案
  3. 织梦php如何完全卸载,DEDE织梦CMS后台精简可以删掉的不需要的文件
  4. 发票认证系统服务器调用失败,发票认证平台登录显示不成功怎么办
  5. 百度PaddleOCR Docker GPU版安装全指南
  6. 22 Rest高级客户端实践(八):滚动搜索
  7. 【附源码】Java计算机毕业设计高校流动党员信息管理系统(程序+LW+部署)
  8. 深信服广域网优化三度入围Gartner魔力象限
  9. 安全之路 —— 通过映像劫持实现文件自启动
  10. 基于Arduino高温巡逻报警智能小车