thinkphp5 学习的一些注意事项

2024-05-30 02:58

本文主要是介绍thinkphp5 学习的一些注意事项,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

使用前查看框架的开发规范,做到命名规则的统一

控制器命名的的注意事项

1.建议在配置文件中将控制器的后缀名置为true

// 控制器类后缀
'controller_suffix'      => true,

因为控制器的类名可能会和模型的类名相同,比如User,Customer,Order之类的。

2.控制器尽量使用一个单词,如果使用两个及以上,首字母大写,其他全小写

class UserinfoController extends Controller{public function index(){}
}

如果所有字母都首字母大写UserInfoController,则访问时index.php/index/userinfo/index会报错,只有写成index.php/index/user_info/index才行。

当然这是在url地址大小写不敏感的时候,如果配置大小写敏感,则可以这样访问index.php/Index/UserInfo/index

一般都开启大小写不敏感,便于用户访问和网址的传播

控制器初始化

即类的初始化,之前版本的初始化一直使用的是__construct()魔术方法,是php自带的,5.0版本新增了一个控制器初始化方法是_initialize()
区别:
如果你试了之后会发现,两者都是一样的,在方法执行前执行,但是如果使用5.0版本的控制器前缀方法,那结果将不一样。

class IndexController extends Controller
{protected $beforeActionList = ['isLogin' => ['only'=>'userinfo'],];public function __construct(){parent::__construct();echo 'is construct<br>';}public function _initialize(){parent::_initialize(); // TODO: Change the autogenerated stubecho 'is init<br>';}public function index(){return 'is index';}protected function isLogin(){echo "is login<br>";}public function userInfo(){return 'is userInfo';}//结果/*is initis loginis constructis userInfo*/
}

可以看到_initialize()将先执行,然后是前置方法,再是construct,所以5.0版本的初始化建议使用_initialize()

控制器前置方法使用大小写注意

class IndexController extends Controller
{protected $beforeActionList = ['isLogin' => ['only'=>'userinfo'],];protected function isLogin(){echo "is login<br>";}public function userInfo(){return 'is userInfo';}
}

only对应的方法名中,需要全部小写,即userinfo,写成userInfo前置方法isLogin不会被执行

关于重定向和跳转的使用注意事项

1.继承了Controller,可以直接使用$this->redirect(),或者使用助手函数redirect(),使用助手函数前面需要加return ,即return redirect()。
只有使用助手函数可以使用return redirect()->remember(),记住当前地址,然后可以跳转后再使用return redirect()->restore()跳转回来,$this-redirect()->remember()不能这样使用

2.success和error方法更多的是用于页面的提示和跳转,虽然参数有支持data,但是试验了普通跳转是无法携带的(真的么?),而error方法手册说会在ajax请求时自动转换数据格式并返回,success在ajax请求时不会。
如此麻烦,不如直接舍弃,只用于页面提示的跳转,ajax请求直接使用return [];或者return json([]);

空操作和空控制器

空操作_empty和空控制器Error更多的是用于提示用户,可以定义一个提示页面,将主要的网站功能列在上面,如果用户跳转到一个不存在的地址,可以跳转页面进行友情导航提示

未完待续

这篇关于thinkphp5 学习的一些注意事项的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1015391

相关文章

Go语言中nil判断的注意事项(最新推荐)

《Go语言中nil判断的注意事项(最新推荐)》本文给大家介绍Go语言中nil判断的注意事项,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1.接口变量的特殊行为2.nil的合法类型3.nil值的实用行为4.自定义类型与nil5.反射判断nil6.函数返回的

MySQL 获取字符串长度及注意事项

《MySQL获取字符串长度及注意事项》本文通过实例代码给大家介绍MySQL获取字符串长度及注意事项,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录mysql 获取字符串长度详解 核心长度函数对比⚠️ 六大关键注意事项1. 字符编码决定字节长度2

C++链表的虚拟头节点实现细节及注意事项

《C++链表的虚拟头节点实现细节及注意事项》虚拟头节点是链表操作中极为实用的设计技巧,它通过在链表真实头部前添加一个特殊节点,有效简化边界条件处理,:本文主要介绍C++链表的虚拟头节点实现细节及注... 目录C++链表虚拟头节点(Dummy Head)一、虚拟头节点的本质与核心作用1. 定义2. 核心价值二

详解MySQL中DISTINCT去重的核心注意事项

《详解MySQL中DISTINCT去重的核心注意事项》为了实现查询不重复的数据,MySQL提供了DISTINCT关键字,它的主要作用就是对数据表中一个或多个字段重复的数据进行过滤,只返回其中的一条数据... 目录DISTINCT 六大注意事项1. 作用范围:所有 SELECT 字段2. NULL 值的特殊处

MySQL 打开binlog日志的方法及注意事项

《MySQL打开binlog日志的方法及注意事项》本文给大家介绍MySQL打开binlog日志的方法及注意事项,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录一、默认状态二、如何检查 binlog 状态三、如何开启 binlog3.1 临时开启(重启后失效)

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

重新对Java的类加载器的学习方式

《重新对Java的类加载器的学习方式》:本文主要介绍重新对Java的类加载器的学习方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、介绍1.1、简介1.2、符号引用和直接引用1、符号引用2、直接引用3、符号转直接的过程2、加载流程3、类加载的分类3.1、显示

Java学习手册之Filter和Listener使用方法

《Java学习手册之Filter和Listener使用方法》:本文主要介绍Java学习手册之Filter和Listener使用方法的相关资料,Filter是一种拦截器,可以在请求到达Servl... 目录一、Filter(过滤器)1. Filter 的工作原理2. Filter 的配置与使用二、Listen

电脑死机无反应怎么强制重启? 一文读懂方法及注意事项

《电脑死机无反应怎么强制重启?一文读懂方法及注意事项》在日常使用电脑的过程中,我们难免会遇到电脑无法正常启动的情况,本文将详细介绍几种常见的电脑强制开机方法,并探讨在强制开机后应注意的事项,以及如何... 在日常生活和工作中,我们经常会遇到电脑突然无反应的情况,这时候强制重启就成了解决问题的“救命稻草”。那