thinkphp6
think\queue\Job Job类
function fire:这是方法的名称,通常用于启动或执行队列任务。
use think\queue\Job;
interface JobInterface
{
public function fire(Job $job, $data): void;
}
接受两个参数:一个Job对象和一个$data参数。Job对象通常包含了队列任务的相关信息,比如任务的ID、重试次数等;$data参数则可能包含了传递给队列任务的具体数据。
think\facade\App 门面类
think\facade\App 是 ThinkPHP 框架中的一个类,它属于 think\facade 命名空间。
Facade(门面)模式是一种设计模式,它提供了一个统一的接口来访问子系统中的一组接口,从而使得子系统更加容易使用。
提供了一些静态方法来访问应用程序的相关功能,例如获取应用程序的配置信息、处理请求、发送响应等。通过使用 use think\facade\App; 语句,你可以在代码中直接使用 App 类而不需要每次都写出完整的命名空间。
需要注意的是,在 ThinkPHP 6 及以后的版本中,官方推荐使用依赖注入的方式来获取应用程序对象,而不是直接使用门面类。这样做可以更好地遵循面向对象的设计原则,提高代码的可测试性和可维护性。因此,在实际开发中,你可能会看到更多的代码使用依赖注入来获取应用程序对象,而不是直接使用 think\facade\App 类。
TP6 框架源码下载
composer update topthink/framework
打开Composer官网:https://www.phpcomposer.com/
https://packagist.org/
输入搜索关键字: topthink, 在下面会列出与ThinkPHP框架相关的组件包
composer create-project topthink/think
// 打开终端,执行指令:
composer create-project topthink/think tp6 6.0.*-dev
/**
* 指令中各个参数的解释:
* `create-project`: 是composer中的项目创建命令
* `topthink/think`: ThinkPHP的组件包
* `tp6`: 是当前的项目目录(如果没有创建, 该命令会自动创建的)
* `6.0.*-dev`: 要下载的版本标签
*/
项目目录
框架测试
这里使用框架内置的 think 命令测试
该命令会启动一个本地的临时Web服务器,
功能与 php -S localhost:8000 是一样的
创建本地服务器, 启动框架
php think run
安装
重点介绍
TP6的架构详述-依赖注入
容器与系统服务和门面
中间件
事件触发监听
路由器详解
数据库
新版的数据库和模型操作已经独立为ThinkORM库
,默认安装应用的时候会自动安装,如果你不需要使用该ORM库的话,可以单独卸载topthink/think-orm
后安装其它的ORM库。
主要特性:
基于PDO和PHP强类型实现
支持原生查询和查询构造器
自动参数绑定和预查询
简洁易用的查询功能
强大灵活的模型用法
支持预载入关联查询和延迟关联查询
支持多数据库及动态切换
支持MongoDb
支持分布式及事务
支持断点重连
支持JSON查询
支持数据库日志
支持PSR-16缓存及PSR-3日志规范
要使用Db类必须使用门面方式(think\facade\Db)调用
连接数据库
如果应用需要使用数据库,必须配置数据库连接信息
,数据库的配置文件有多种定义方式。
配置文件
在全局或者应用配置目录(不清楚配置目录位置的话参考配置章节)下面的database.php
中(后面统称为数据库配置文件)配置下面的数据库参数:
return [
'default' => 'mysql',
'connections' => [
'mysql' => [
// 数据库类型
'type' => 'mysql',
// 服务器地址
'hostname' => '127.0.0.1',
// 数据库名
'database' => 'thinkphp',
// 数据库用户名
'username' => 'root',
// 数据库密码
'password' => '',
// 数据库连接端口
'hostport' => '',
// 数据库连接参数
'params' => [],
// 数据库编码默认采用utf8
'charset' => 'utf8',
// 数据库表前缀
'prefix' => 'think_',
],
],
];
新版采用多类型
的方式配置,方便切换数据库
。
default配置
用于设置默认使用
的数据库连接配置
。
connections配置
具体的数据库连接信息,default配置参数定义的连接配置
必须要存在。
ype参数
用于指定数据库类型
type 数据库
mysql MySQL
sqlite SqLite
pgsql PostgreSQL
sqlsrv SqlServer
mongo MongoDb
oracle Oracle
每个应用
可以设置 独立的数据库连接参数
,通常直接更改default参数即可:
return [
'default' => 'admin',
];
连接参数
可以针对不同的连接需要添加数据库的连接参数
(具体的连接参数可以参考PHP手册
),内置采用的参数包括如下:
PDO::ATTR_CASE => PDO::CASE_NATURAL,
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_ORACLE_NULLS => PDO::NULL_NATURAL,
PDO::ATTR_STRINGIFY_FETCHES => false,
PDO::ATTR_EMULATE_PREPARES => false,
在数据库配置文件中设置的params参数
中的连接配置
将会和内置的设置参数合并
,如果需要使用长连接
,并且返回数据库的小写列名,可以在数据库配置文件中增加下面的定义:
'params' => [
\PDO::ATTR_PERSISTENT => true,
\PDO::ATTR_CASE => \PDO::CASE_LOWER,
],
你可以在params参数里面配置任何PDO支持的连接参数
。
切换连接
我们可以在数据库配置文件中定义多个连接信息
return [
'default' => 'mysql',
'connections' => [
'mysql' => [
// 数据库类型
'type' => 'mysql',
// 服务器地址
'hostname' => '127.0.0.1',
// 数据库名
'database' => 'thinkphp',
// 数据库用户名
'username' => 'root',
// 数据库密码
'password' => '',
// 数据库连接端口
'hostport' => '',
// 数据库连接参数
'params' => [],
// 数据库编码默认采用utf8
'charset' => 'utf8',
// 数据库表前缀
'prefix' => 'think_',
],
'demo' => [
// 数据库类型
'type' => 'mysql',
// 服务器地址
'hostname' => '127.0.0.1',
// 数据库名
'database' => 'demo',
// 数据库用户名
'username' => 'root',
// 数据库密码
'password' => '',
// 数据库连接端口
'hostport' => '',
// 数据库连接参数
'params' => [],
// 数据库编码默认采用utf8
'charset' => 'utf8',
// 数据库表前缀
'prefix' => 'think_',