最近在做一项目,是基于laravel的后台api,用于与手机交互的,数据采用json格式。下面说下怎样在两周内把一个新框架或者语言用的得心应手。
项目采用laravel5.4+dingoapi+jwt,数据库使用model(orm)方式。
1、熟练使用工具,我平常看代码用sublime,很轻巧的工具。断点调试用phpstorm,api测试用postman(google浏览器插件),本地用phpstudy搭建环境
2、sublime就不说了,用起来比较简单。phpstorm配置调试,费了不少时间,按照网上的方法能配置,使用上遇到难题,最后发现是点击监听即可(配置完调试后),就是那个右上角的小电话,就这么简单,然后使用postman发送数据,phpstorm会停在断点处,非常方便。
3、postman也费了不少时间,主要是下载的postman与网上的教程中版本不一致,看起来比较别扭,会用了,很方便。
4、phpstudy搭建laravel环境,也进行了一番周折,问题主要出在php版本以及laravel需要开启的动态库上,最后使用php7,动态库出现问题一般是缺少dll文件,下载相关dll即可。
5、jwt需要注意下,项目使用student、teacher两个表认证,但是jwt默认是user表认证。刚开始做使用的是在user表中加老师、学生标志,这样也能达到效果。最后团队内商量还是使用jwt直接在student、teacher两个表认证。最后发jwt需要升级到1.0版本才能支持,因为网上的教程都是用的jwt0.5版本,所以这个要升级。
上面说的都是工具的使用,工具用熟练了,才能高歌猛进。
6、laravel框,看看手册,基本就是配置各种文件,如果想对laravel原理了解下,可以使用phpstorm调试下代码,知道是怎么个流程。
7、api实现,网上的教程都比较老了,都不是laravel5.4的教程,网上的路由配置jwt都是写在web.php配置文件中(老版本没有api.php,只有web.php),经过摸索5.4版本jwt应该写在api.php。
8、dingoapi很简单,使用的就几个函数,我就用了两个collection paginator,这两个函数配合transform,相当好用,transform使用model关联获取几个表的数据。
9、数据表的联合查询,这里出了点麻烦,本来想用model的表关联搞定这个(with),最后用with实现了,因为要跟paginator结合,最后获得的数据会多出无用的数据。最后回到使用leftjoin函数实现。
10、sql语句,laravel做了封装,不知道最后执行的是什么sql,可以通过配置sql监听,将sql打印到log日志中。配置也比较简单。
11、可以通过seed设置一些测试数据,是很方便的。
12、刚开始数据库经常改动,使用migrations,每次回滚,数据就没了,这个是比较头疼的事。用seed自动填充测试数据可以方便一些。
上面说了这个项目所有用到的东西,两周时间可从学习到搭建完这个后台。
后面等这个项目做完,准备做个php项目培训课程,通过网络远程授课,可以远程手把手指导的方式。团购价500元,介绍一个可以减50元,可以到群277304970报名。培训的内容是使用laravel框架开发一个完整的项目,这个项目是以目前做的项目为基础改进的。通过这个增加项目经验,为找工作做铺垫,希望这里是个良好的开始。