【Laravel系列8】走出 Laravel 的世界

2023-03-03 13:34:33 浏览数 (3)

走出 Laravel 的世界

还记得这个系列的第一篇文章是什么吗?当时我们写的是《进入Laravel的世界》。照理说,学习完了,日常应用更得心应手了,我们为啥又要走出呢?

又是一个新的开始

对于我们的人生来说,就是在不断地进行着开始与结束的循环。在开始的时候,我们走进 Laravel 的世界。从头到尾并没有很深入的讲解每一个功能的使用,这些内容讲的教程太多了,通常我们只是简单地介绍一个功能的使用,然后就开始分析它的源码。想必你也知道了,我们要看的更多的是这个框架的设计思想,包括设计模式的应用、代码结构的组织、底层调用的路径分析等。我认为,在了解了这些内容之后,你再回头看框架已经封装好的功能,就会感觉非常亲切和简单。

这其实也是各位大佬们推荐通过源码阅读来学习的主要原因。不过一个人看代码的感觉相信你也非常清楚,那个困啊,那个懵啊。所以,我写这个系列的初衷也是非常自私的,希望通过分享的方式激励自己去深入的了解整个 Laravel 框架体系。因此,在录制视频的时候也会出现各种踩坑,各种调试不顺和找不到东西。但是之前我在小视频中就分享过,录视频只是我的一个复习手段,包括这些文章,并不指望大家能看到,而且我也不怕有错误有遗漏,有大神能指出来就是对我最大的帮助。所以大部分情况下只是大概看一眼,试一下,然后就开始录,边录边调试,进一步加深印象。其实真正在写文章的时候,付出的精力远比录视频时要多的多。不过话说回来,如果这些文章和视频真的能够为你带来哪怕一丝丝的收获,那么也算是功德一件,感谢你,也感谢我自己。

学习这条路是没有尽头的,Laravel 的学习结束了,不少小伙伴应该也把它应用在日常业务开发中了。下一个起点又会是什么呢?其实不少 PHP 程序员可能都没怎么接触过高并发,毕竟 PHP 的适用场景是初创企业可以进行快速产品验证。因此,往往在到了一定规模之后,很多企业都会切换到 Java 等其它语言环境,比如最出名的淘宝。淘宝最早就是买的一个 PHP 商城系统,当规模做大之后,直接请的 Sun 公司的技术专家以及淘宝初创时的各位大牛们改为了 Java 。这件事在 《淘宝技术这十年》 这本书中都有讲过。

那么,PHP 就不能做高并发大流量的业务了吗?相信不少同学已经马上脱口而出了:“Swoole 可以呀!”。

好吧,不废话了,下个系列就写 Swoole 。但是,没有源码分析了哦,C 源码我可分析不动。我们就直接去学习 Swoole 中的应用功能,以及一个和 Laravel 非常像的 Swoole 框架:Hyperf 。

当然,不是说离开了 Swoole 或者 Workerman ,原生的 PHP 并发就很烂了。现在的 PHP8 引入了 JIT ,配合 OPCache ,再加上多台机器分布式部署的话,其实性能也不差。但是,又来但是了,在一些业务场景下,一台 Swoole 确实可以顶好几台甚至几十台的传统 PHP 服务器,这真不是瞎说。换句话说,对于财务很友好,对老板开源节流也很友好,对我们也很好。为啥呢?不接触一些传统编译型语言的理念的话,想要将自己的技术水平再提升一个档次,真的很难,PHPer 们一定要跳出舒适圈啊!

Laravel 优雅吗

还记得我们一开始就说过这个问题,同时网上很多人也都会去说它是一个优雅的框架。经过这段时间的学习,我相信你也有了自己的答案。特别是在面试的时候,你可以向面试官说出具体优雅在哪里了吗?

服务容器、门面、模型它们的实现过程其实都很复杂,但是呈现给我们的确实是优雅的感觉,变量命名规范、代码层次清晰等等,就不一一列举了。我们只需要用很少的代码就可以实现很多功能,因此更多的感觉是它整个框架的结构,一些代码的使用方式很有 Java 的感觉。不过这也印证了一个道理,天下大同,不仅是语言,这些框架也在越来越接近,越来越类似。

如果你还要继续深入地学习一些编程思想,现在应该去看一看 Java 相关的框架了。体系更复杂,概念更多,但是也确实都是更流行更新潮的内容。是否合适用在 PHP 上呢?这个就仁者见仁,智者见智了,也超过了我的能力范畴没法给你答案了。

别的框架还学不学

这个嘛,你工作中用哪个呢?如果你用得是 TP 或者 Yii ,那本身就已经没问题了。你可以在这些框架中寻找到 Laravel 中许多实现的影子。如果你本身就是在用 Laravel ,去拓展一下眼界也没什么不好。不说谁抄谁,思想都是开源的,这点你必须承认。很多实现或许在其它的框架中会有更好的解决方案,我们学习了解到了不也是一种收获嘛。

另外我个人有个观点,最简单,最方便,使用的人最多的框架才应该是你的主力框架。比如说在国内,TP 确实是很好的选择,通过 Laravel 来学习潮流思想,通过 TP 来完成工作和完成自己想做的任何东西,不失为一种好的方案。

不出项目教程?

我的天呀!(小岳岳语气)

还需要我来出具体的项目教程?这东西一搜一大堆了吧,用 Laravel 做博客的、做商城的、做官网的教程或者是源码分析的,已经多得不能再多了,而且都是各位大神的讲解,绝不会比我差,只会更好。但是请记住,官方文档和实战经验才是你的法宝,我们这些 CRUD 程序员能把数据库设计好了就完全足够应对这些项目了。毕竟最终我们都只是在做数据的操作而已。

好吧,立个 Flag ,写完 Swoole 之后我们来一起研究 MySQL、Redis、Nginx 三大件怎么样?到时候一起研究做什么项目怎么建合适的库表好啦!

总结

别的不多说了,期待我们下个 Swoole 系列的见面吧。希望你在这段旅程中有所收获,更重要的是带来一些启发,有什么想说的就直接留言吧!

0 人点赞