本文主要是介绍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 学习的一些注意事项的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!