ThinkPHP 6.0 PHP新手教程
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、内置服务
为了更好的完成核心组件的单元测试,框架内置了一些系统服务类,主要都是用于核心类的依赖注入,包括ModelService
、PaginatorService
和ValidateService
类。这些服务不需要注册,并且也不能卸载。
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_write
和after_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 | 应用运行时目录 |
可以在应用的公共函数文件中重写上面这些助手函数。
原文地址:https://blog.csdn.net/xzp19841203xzp/article/details/144410895
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!