ThinkPHP 6.0 PHP新手教程

发布于:2024-12-18 ⋅ 阅读:(59) ⋅ 点赞:(0)

1、系统配置文件

下面系统自带的配置文件列表及其作用:

配置文件名 描述
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 视图配置

具体的配置参数及默认值可以直接查看应用config目录下面的相关文件内容。

2、应用目录获取

单应用和多应用模式会影响一些系统路径的值,为了更好的理解本手册的内容,你可能需要理解下面几个系统路径所表示的位置。

目录位置 目录说明 获取方法(助手函数)
根目录 项目所在的目录,默认自动获取,可以在入口文件实例化App类的时候传入。 root_path()
基础目录 根目录下的app目录 base_path()
应用目录 当前应用所在的目录,如果是单应用模式则同基础目录,如果是多应用模式,则是app/应用子目录 app_path()
配置目录 根目录下的config目录 config_path()
运行时目录 框架运行时的目录,单应用模式就是根目录的runtime目录,多应用模式为runtime/应用子目录 runtime_path()

3、系统内置绑定到容器中的类库包括

系统类库

容器绑定标识

think\App

app

think\Cache

cache

think\Config

config

think\Cookie

cookie

think\Console

console

think\Db

db

think\Debug

debug

think\Env

env

think\Event

event

think\Http

http

think\Lang

lang

think\Log

log

think\Middleware

middleware

think\Request

request

think\Response

response

think\Filesystem

filesystem

think\Route

route

think\Session

session

think\Validate

validate

think\View

view

使用app助手函数进行容器中的类解析调用,对于已经绑定的类标识,会自动快速实例化

$cache = app('cache');

4、内置服务

为了更好的完成核心组件的单元测试,框架内置了一些系统服务类,主要都是用于核心类的依赖注入,包括ModelServicePaginatorServiceValidateService类。这些服务不需要注册,并且也不能卸载。

5、核心Facade类库

系统给内置的常用类库定义了Facade类库,包括:

动态)类库 Facade类
think\App think\facade\App
think\Cache think\facade\Cache
think\Config think\facade\Config
think\Cookie think\facade\Cookie
think\Db think\facade\Db
think\Env think\facade\Env
think\Event think\facade\Event
think\Filesystem think\facade\Filesystem
think\Lang think\facade\Lang
think\Log think\facade\Log
think\Middleware think\facade\Middleware
think\Request think\facade\Request
think\Route think\facade\Route
think\Session think\facade\Session
think\Validate think\facade\Validate
think\View think\facade\View

所以你无需进行实例化就可以很方便的进行方法调用,例如:

use think\facade\Cache;

Cache::set('name','value');
echo Cache::get('name');

6、内置中间件

新版内置了几个系统中间件,包括:

中间件类 描述
think\middleware\AllowCrossDomain 跨域请求支持
think\middleware\CheckRequestCache 请求缓存
think\middleware\LoadLangPack 多语言加载
think\middleware\SessionInit Session初始化
think\middleware\FormTokenCheck 表单令牌

这些内置中间件默认都没有定义,你可以在应用的middleware.php文件中、路由或者控制器中定义这些中间件,如果不需要使用的话,取消定义即可。

7、内置事件

内置的系统事件包括:

事件 描述 参数
AppInit 应用初始化标签位
HttpRun 应用开始标签位
HttpEnd 应用结束标签位 当前响应对象实例
LogWrite 日志write方法标签位 当前写入的日志信息
RouteLoaded 路由加载完成
LogRecord 日志记录V6.0.8+

AppInit事件定义必须在全局事件定义文件中定义,其它事件支持在应用的事件定义文件中定义。

原来5.1的一些行为标签已经废弃,所有取消的标签都可以使用中间件更好的替代。可以把中间件看成处理请求以及响应输出相关的特殊事件。事实上,中间件的handler方法只是具有特殊的参数以及返回值而已。

数据库操作的回调也称为查询事件,是针对数据库的CURD操作而设计的回调方法,主要包括:

事件 描述
before_select select查询前回调
before_find find查询前回调
after_insert insert操作成功后回调
after_update update操作成功后回调
after_delete delete操作成功后回调

查询事件的参数就是当前的查询对象实例。

模型事件包含:

钩子 对应操作
after_read 查询后
before_insert 新增前
after_insert 新增后
before_update 更新前
after_update 更新后
before_write 写入前
after_write 写入后
before_delete 删除前
after_delete 删除后

before_writeafter_write事件无论是新增还是更新都会执行。

模型事件方法的参数就是当前的模型对象实例。

8、助手函数

系统为一些常用的操作方法封装了助手函数,便于使用,包含如下:

助手函数 描述
abort 中断执行并发送HTTP状态码
app 快速获取容器中的实例 支持依赖注入
bind 快速绑定对象实例
cache 缓存管理
class_basename 获取类名(不包含命名空间)
class_uses_recursive 获取一个类里所有用到的trait
config 获取和设置配置参数
cookie Cookie管理
download 获取\think\response\File对象实例
dump 浏览器友好的变量输出
env 获取环境变量
event 触发事件
halt 变量调试输出并中断执行
input 获取输入数据 支持默认值和过滤
invoke 调用反射执行callable 支持依赖注入
json JSON数据输出
jsonp JSONP数据输出
lang 获取语言变量值
parse_name 字符串命名风格转换
redirect 重定向输出
request 获取当前Request对象
response 实例化Response对象
session Session管理
token 生成表单令牌输出
trace 记录日志信息
trait_uses_recursive 获取一个trait里所有引用到的trait
url Url生成
validate 实例化验证器
view 渲染模板输出
display 渲染内容输出
xml XML数据输出
app_path 当前应用目录
base_path 应用基础目录
config_path 应用配置目录
public_path web根目录
root_path 应用根目录
runtime_path 应用运行时目录

可以在应用的公共函数文件中重写上面这些助手函数。

 


网站公告

今日签到

点亮在社区的每一天
去签到