Thinkphp 5.1

南门星河
2023-12-01

简而言之

TP5.1要求PHP V>5.6.0。

取消了系统路径的常量定义,配置文件从类库目录里独立出来,配置参数全是二级配置,配置名称区分大小写【建议统一用小写】。

所有应用从入口文件开始,public目录为可访问目录。linux环境下面,runtime目录权限为777。

可以对增删改查方法设置对应的回调函数【before_*,after_*】。

TP5.1明确了容器【think\Container】的概念,容器可以理解为是将一些类的实例化对象【如常用的核心类库对象】保存进来,并给予一个调用标识【区分大小写】。

可通过bind助手函数单个或批量地绑定类、闭包、实例、接口实现到容器中,可通过app()助手函数获取容器里的对象实例。

依赖注入可以理解为是把类的依赖通过构造函数或者其它方法注入到类中,例如把依赖类的实例化对象作为当前类里构造函数的参数,然后在构造函数里将其赋给类里的自定义变量。

和TP5.0不用的是,类的绑定不再通过Request对象,而是直接注册到容器中,依赖注入会先检查容器里是否有需要的对象实例,有的话就自动注入。

门面【Facade】为容器中的类提供了一个静态调用接口。

钩子【Hook】可以理解为是在应用程序生命周期里选取的一些用于调用一些方法实现一些行为的特定位置点,类似于AOP【面向切面编程】的“切面”概念。

中间件【Middleware】主要用于拦截或过滤应用的HTTP请求,进行一些业务处理。中间件的入口方法必须是handler方法,且第一个参数是Request对象,第二个参数是一个闭包方法,返回Response对象。

可以通过命令行创建RESTful资源控制器类,再在路由规则里注册资源路由【Route::resource】,可以节省书写代码工作量。

控制器方法里参数绑定传入的值会经过全局过滤。

请求缓存仅对GET请求有效。

TP5 V5.0.21+ 可通过download助手函数实现文件下载功能,可设置文件下载的有效期,文件下载路径是服务器路径而不是URL路径,找不到文件会抛出异常。

可在模型类里设置$type属性规定一些字段的数据类型【自动转换】,可在模型类里设置命名方式为“set字段名大驼峰写法attr”的方法来对字段数据存储前进行处理,可在模型类里设置命名方式为“get字段名大驼峰写法attr”的方法来对读取后的数据进一步处理。

可在模型类里设置一些模型事件,用于在save()方法和delete()方法调用前后触发。

TP5.1里很多异常是自动捕获和抛出的,可通过助手函数exception()手动抛出异常,abort()方法快速抛出HTTP异常。

系统会在请求后自动调用Log::save()方法,所以通常只需要调用Log::record()方法记录日志信息即可。助手函数trace()用于日志记录。可用Log::clear()清空内存里的日志信息。

助手函数只是用于简化方法调用的代码书写量,框架核心代码里并没有依赖助手函数。

 类似资料:

相关阅读

相关文章

相关问答