资讯专栏INFORMATION COLUMN

Laravel 菜鸟晋级之路

YacaToy / 1403人阅读

摘要:用也有三四个月了,虽然是兼职开发,但是使用的频率非常之高,毕竟是产品化的一个项目。第二阶段数据库和开发了比较多的功能之后,会发现需要大量的测试数据,这时候和就该大显身手了。

用Laravel也有三四个月了,虽然是兼职开发,但是使用的频率非常之高,毕竟是产品化的一个项目。
在这期间,也踩了无数的坑,走了很多弯路,所以准备把最近的感悟记录下来,方便后来者。


第一阶段:简单的增删改查

这是最开始接触Laravel的一个阶段。如果有PHP经验,那么应该能很快找到MVC的路径,然后驾轻就熟的开始写起来。虽然还显得有些笨拙,不过很快就能做出一些内容了。如果没有PHP经验,还是不建议轻易入坑的。毕竟连语法都不熟悉,很难上手。

Laravel由于支持大量的命令行生成代码,可能对于thinkPHP或者其他框架的用户并不太友好,不过当你需要创建大量文件的时候,还是会觉得很好用的。即使是简单的增删改查,也建议多用命令行,比如最好用的php artisan make:model Foo -m,直接创建了model和对应的migration。

第二阶段:数据库factory和seeder

开发了比较多的功能之后,会发现需要大量的测试数据,这时候factory和seeder就该大显身手了。当然这两个货并不怎么好搞定,faker的功能非常之多,factory中创建各种faker,然后在seeder中调用,学会这些,你就又升了一级。

faker对中文支持也很好,可以生成用户名,英文名,中文名,中文公司名,中文的企业口号,大陆电话号码等。
数据填充的文档
faker的文档

第三阶段:表单剥离

最开始表单校验都是直接写在controller中,如果了解一下request相关的内容,可以将表单验证和数据创建更新,都放在多带带的request类中,php artisan make:request FooForm即可创建一个表单验证器。我的习惯是,把新建和更新的验证,都写在一起,这样方便对照,以免出错。

表单类支持自动验证登录,自动验证规则,支持很多种规则还支持自定义规则(php artisan make:rules balabala),还可以用messages函数,返回自定义错误信息。
表单相关的文档

第四阶段:自动化测试

Laravel从5.5才开始支持浏览器自动化测试dusk,不过功能直接就登峰造极了,各种assert让你眼花缭乱,而且易用性也在我用过的各种浏览器测试框架中首屈一指。如果没有接触过自动化测试或者浏览器测试,建议先尝试一下其他框架,python、nodejs也都是有这方面工具的,做http测试和浏览器什么的。传统的人工测试,实在有点落后了。

dusk最好用的,一个是支持分页,也就是把一部分内容抽象到多带带的类里面;还有一个是有好多内置函数,不需要写一大堆选择器,比如type输入可以使用input的名字,press使用button的名字,clickLink使用链接的名字,还能自定义高级选择器;另一个是遇到错误可以自动截图,简直是神操作,可以直观看到出错的页面。
测试相关的文档

第五阶段:设计模式

我目前刚达到这一阶段,今天才刚刚理解依赖注入的用法,才开始用上repository模式,之前数次重构,都没有成功。Laravel真正的神奇之处就在这里,你可以在controller之外的地方注入request对象,从而把大量的逻辑都从controller和model中剥离出来。在这之前的一阵子,我一直在用presenter模式,把视图中涉及到一些逻辑的代码都提取出来,以便复用。

项目越来越大之后,MVC已经完全不够用了,controller乱成一团,model里也有好多逻辑代码,view里有很多判断和计算。这时候就需要好好设计一下骨架了,比如presenter、repository等,service模式还没用过,后续可能会使用吧。
Laravel中大型项目架构

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/25992.html

相关文章

  • 前端修炼之路

    摘要:一步,两步,三步四步五步,就这样到达了人生的巅峰传统前端生态初级不使用打包中间处理工具,手工处理图片等资源掌握以下知识点基础结构,基础样式,基础语法框架,系列插件框架,等基础插件,等其他移动端适配,浏览器兼容,浏览器调试等恭喜完成新手村修 一步,两步,三步四步五步,就这样到达了人生的巅峰~ 传统前端生态-初级 不使用打包、中间处理工具,手工处理js、css、图片等资源 掌握以下知识点:...

    Jason_Geng 评论0 收藏0
  • 前端修炼之路

    摘要:一步,两步,三步四步五步,就这样到达了人生的巅峰传统前端生态初级不使用打包中间处理工具,手工处理图片等资源掌握以下知识点基础结构,基础样式,基础语法框架,系列插件框架,等基础插件,等其他移动端适配,浏览器兼容,浏览器调试等恭喜完成新手村修 一步,两步,三步四步五步,就这样到达了人生的巅峰~ 传统前端生态-初级 不使用打包、中间处理工具,手工处理js、css、图片等资源 掌握以下知识点:...

    macg0406 评论0 收藏0
  • laravel-路由篇-01

    摘要:路由篇文章基本上参考文档所写,用来记录自己的学习过程,如果文章有错,以文档为准,当然希望大神看见给些意见,关于路由该怎么才能用的更溜,本菜鸟在此奉上膝盖。 laravel-路由篇-01 文章基本上参考文档所写,用来记录自己的学习过程,如果文章有错,以文档为准,当然希望大神看见给些意见,关于路由该怎么才能用的更溜,本菜鸟在此奉上膝盖。 laravel文档路由篇 1.首先最基础的路由...

    nevermind 评论0 收藏0
  • 世界冠军之路菜鸟车辆路径规划求解引擎研发历程

    摘要:已有的经典求解算法可以分为精确解算法和启发式算法两大类。所以还有一大部分研究集中于启发式算法领域。此外,经过不断的探索研究,元启发式算法被证明在求解方面具有很好的效果和效率。 showImg(https://segmentfault.com/img/remote/1460000018814897); 阿里妹导读:车辆路径规划问题(Vehicle Routing Problem, VR...

    CoreDump 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<