tp6 使用lock_ThinkPHP6试用简易报告

本文介绍了ThinkPHP6框架的安装、配置与核心特性,包括多应用模式、依赖注入、中间件、事件系统、路由、模型操作及异常处理。文章详细阐述了每个特性的使用方法和注意事项,旨在帮助开发者快速上手TP6。
摘要由CSDN通过智能技术生成

目录

环境要求

php > 7.1

必须使用composer安装及更新

安装

PS I:\src\tp6> composer create-project topthink/think tp

Installing topthink/think (v6.0.0)

- Installing topthink/think (v6.0.0): Downloading (100%)

Created project in tp

Loading composer repositories with package information

Updating dependencies (including require-dev)

Package operations: 14 installs, 0 updates, 0 removals

- Installing psr/container (1.0.0): Downloading (100%)

- Installing topthink/think-helper (v3.1.3):

...

Writing lock file

Generating autoload files

> @php think service:discover

Succeed!

> @php think vendor:publish

Succeed!

测试运行

采用内置web服务器运行测试,默认8000端口

php think run

目录结构

默认单应用模式

多应用模式

需要安装模式拓展

composer require topthink/think-multi-appwww

├─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

配置

这里以多应用模式为例:

注意:官方说除了一级配置外,严格区分大小写。显然很容易让人混淆,不如建议自己约定统一采用小写。

全局配置

app/config/*

对所有应用有效

应用配置

app/app*/config/*

只对当前应用有效

环境配置

官方只强调了怎么配置,没有说环境配置的目的和使用,对于TP6小白,可能不够友好。

配置文件名描述

app.php应用配置

cache.php缓存配置

console.php控制台配置

cookie.phpCookie配置

database.php数据库配置

filesystem.php磁盘配置

lang.php多语言配置

log.php日志配置

middleware.php中间件配置

route.php路由和URL配置

session.phpSession配置

trace.php页面Trace配置

view.php视图配置

请求流程

流程环节多,但官方说效率甚至比5.1更高

也看出确实采用了更多的成熟的设计模式和技巧,更好的TP将会更靠近laravel,毕竟框架设计模式及开发方法都有一套成熟的理念

控制器

从传统的MVC来看,C不应该做太多业务逻辑处理,应该是考虑流程的梳理整合。

控制器主要负责请求的接收,并调用相关的模型处理,并最终通过视图输出。严格来说,控制器不应该过多的介入业务逻辑处理。

多应用模式

安装多应用扩展模式:

PS I:\src\tp6\tp> composer require topthink/think-multi-app

Using version ^1.0 for topthink/think-multi-app

./composer.json has been updated

Loading composer repositories with package information

Updating dependencies (including require-dev)

Package operations: 1 install, 0 updates, 0 removals

- Installing topthink/think-multi-app (v1.0.11): Downloading (100%)

Writing lock file

Generating autoload files

> @php think service:discover

Succeed!

> @php think vendor:publish

File I:\src\tp6\tp\config\trace.php exist!

Succeed!

允许为每个应用增加应用入口文件(public/index.php)

应用映射,支持应用的别名映射,映射支持泛解析

支持使用composer加载应用,设置虽然相对复杂

支持域名绑定应用

支持禁止应用访问

URL访问

pathinfo的支持

apache、iis、nginx 重写支持单一入口

容器

tp5引入的容器,到底是什么意思?

官方是这么说的:ThinkPHP使用容器来更方便的管理类依赖及运行依赖注入,新版的容器支持PSR-11规范。

大部分人还是不懂得容器是什么?

依赖注入

如果小白还不懂得什么是依赖注入的话:

[IOC/DI通俗解释]https://www.iteye.com/blog/cngolon-2187021

了解了依赖注入后,再去看TP官方关于依赖注入的使用

依赖注入的对象参数支持多个,且与顺序无关

以下场景支持依赖注入:

控制器构造方法

控制器操作方法

路由的闭包定义

事件类的执行方法

中间件的执行方法等

服务

官方文档更多的是说服务定义、服务注册、启动,没有更多关于服务的使用和目的。

文档碎片化较多,小白很难理解。(好的开发者文档可以参考微信小程序,都会说明为什么做,理论怎么做,范例怎么做,最佳实践等)

为什么要注册系统服务,也就是将服务绑定到容器中?

服务更多停留在内置服务,后续有时间展开。

门面

官方:门面为容器中的(动态)类提供了一个静态调用接口,相比于传统的静态方法调用, 带来了更好的可测试性和扩展性,你可以为任何的非静态类库定义一个facade类。

看完官方描述,我们都有个疑问门面的应用场景是什么,为什么要用门面?可测试性和扩展性优势在哪里?

依赖注入和门面的使用方式不同,但可以达到同一个效果,当然在编码方式也会有一些差异,这就是框架给小白带来的额外学习负担和烦恼:

namespace app\index\controller;

use think\Request;

class Index

{

public function index(Request $request)

{

echo $request->controller();

}

}<?php

name

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值