自学内容网 自学内容网

ThinkPHP 6.0 PHP新手教程

1、系统配置文件

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

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

具体的配置参数及默认值可以直接查看应用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\Appthink\facade\App
think\Cachethink\facade\Cache
think\Configthink\facade\Config
think\Cookiethink\facade\Cookie
think\Dbthink\facade\Db
think\Envthink\facade\Env
think\Eventthink\facade\Event
think\Filesystemthink\facade\Filesystem
think\Langthink\facade\Lang
think\Logthink\facade\Log
think\Middlewarethink\facade\Middleware
think\Requestthink\facade\Request
think\Routethink\facade\Route
think\Sessionthink\facade\Session
think\Validatethink\facade\Validate
think\Viewthink\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\SessionInitSession初始化
think\middleware\FormTokenCheck表单令牌

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

7、内置事件

内置的系统事件包括:

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

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

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

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

事件描述
before_selectselect查询前回调
before_findfind查询前回调
after_insertinsert操作成功后回调
after_updateupdate操作成功后回调
after_deletedelete操作成功后回调

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

模型事件包含:

钩子对应操作
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获取和设置配置参数
cookieCookie管理
download获取\think\response\File对象实例
dump浏览器友好的变量输出
env获取环境变量
event触发事件
halt变量调试输出并中断执行
input获取输入数据 支持默认值和过滤
invoke调用反射执行callable 支持依赖注入
jsonJSON数据输出
jsonpJSONP数据输出
lang获取语言变量值
parse_name字符串命名风格转换
redirect重定向输出
request获取当前Request对象
response实例化Response对象
sessionSession管理
token生成表单令牌输出
trace记录日志信息
trait_uses_recursive获取一个trait里所有引用到的trait
urlUrl生成
validate实例化验证器
view渲染模板输出
display渲染内容输出
xmlXML数据输出
app_path当前应用目录
base_path应用基础目录
config_path应用配置目录
public_pathweb根目录
root_path应用根目录
runtime_path应用运行时目录

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

 


原文地址:https://blog.csdn.net/xzp19841203xzp/article/details/144410895

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!