Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >【Laravel系列8】走出 Laravel 的世界

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

作者头像
硬核项目经理
发布于 2023-03-03 05:34:33
发布于 2023-03-03 05:34:33
1.2K0
举报

走出 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 之后我们来一起研究 MySQLRedis、Nginx 三大件怎么样?到时候一起研究做什么项目怎么建合适的库表好啦!

总结

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-06-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 码农老张 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【Laravel系列1】进入 Laravel 的世界
欢迎来到 Laravel 系列文章的学习。从这篇文章开始,我们开始进入到 PHP 框架相关的学习中。在这其中,我们主要学习的就是 Laravel 框架,那么为什么是 Laravel 呢?明明 TP 、 Yii 也是很多人在使用的呀。
硬核项目经理
2023/03/03
1.2K0
【Laravel系列1】进入 Laravel 的世界
【Swoole系列1】在Swoole的世界中,你将学习到什么?
在接下来的学习中,我们将要接触到的,将是 PHP 扩展中非常出名的一个高大上的框架,那就是 Swoole 。或许你已经在生产环境中使用过了,或许你只是看过官方文档写过几个例子,当然,更有可能你只是听过它的名字。
硬核项目经理
2023/03/03
5260
【Swoole系列1】在Swoole的世界中,你将学习到什么?
【Swoole系列6.1】将Laravel改成Swoole版的
在讲正式的 Swoole 框架之前,我们先来试试自己把一个普通的 Laravel 框架改成 Swoole 版的,看看能不能成功。当然,这只是一个实验性质的,其实我们还有很多别的选择。
硬核项目经理
2023/03/03
4.1K0
【Swoole系列6.1】将Laravel改成Swoole版的
关于本人对学习知识的方法的理解
不知不觉,我已经入行快3年了,技术群总有人在聊视频学习和文档学习的优缺点,现在我就单独开个文章说明吧.
仙士可
2019/12/19
5570
【Laravel系列6.5】门面模式
在之前我们的设计模式相关的系列文章中,已经学习过了门面模式。在设计模式中,门面模式的定义是:为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。当时我们也实现了自己的设计模式,不记得的小伙伴欢迎移步 PHP设计模式-门面模式https://mp.weixin.qq.com/s/RzCoM96XnlT610q4AiuAVA 再复习复习。
硬核项目经理
2023/03/03
1.8K0
【Laravel系列6.5】门面模式
【Laravel系列3.2】路由:指哪儿打哪儿
在没有接触到 Laravel 之前,早先的框架基本上都没有这个完整的路由的概念。像是 TP3 、Yii1 版本的时候,都是通过入口文件对参数的解析来加载指定的 控制器 。关于这种形式的加载方式大家可以在去看一下老的这些框架是如何实现的。而在 Laravel 中,从我开始接触的时候,就使用的是自定义路由的方式来指定请求的路径。其实,传统方式可以看做是一种隐式路由,而我们需要写的这种是一种显式的路由。Laravel 也是支持隐式路由的,只是它并不推荐这么做。那么,显式路由有什么好处呢?
硬核项目经理
2023/03/03
11.8K0
【Laravel系列3.2】路由:指哪儿打哪儿
【Laravel系列3.4】中间件在路由与控制器中的应用
中间件是什么?在传统框架的年代,很少会有中间件这个概念。我最早接触这个概念其实是在学习 MySQL 的时候,了解过 MyCat 这类的组件也被称为中间件。既然是中间,那么它就是一个夹在应用和调用中间的东西。我们还是以请求为例,一个请求要经过接收、处理、返回这三个过程,而中间件,就可以看作是夹在这三个操作中间的一些操作。比如说,我们的请求发过来,在没有到达路由或者控制器的时候,就可以通过中间件做一些预判,像参数合法不合法、登录状态的判断之类的。就像我们用 Laravel 做业务开发的时候,经常需要自己写的的中间件就是处理登录信息和解决跨域问题的中间件(Laravel8有自己的跨域组件了)。
硬核项目经理
2023/03/03
2.6K0
【Laravel系列3.4】中间件在路由与控制器中的应用
Laravel如何优雅的使用Swoole
正在做一个智能家居的项目,接收下位机(就是控制智能家居硬件模块的HUB)协议解析,Web端维护硬件状态,利用APP交互。由于下位机数据是发送到服务器的XXX端口,所以必须对XXX端口进行监听。其实和聊天室的概念差不多,研究了一下workerman、swoole和其他几个开源的项目,决定采用swoole。
OwenZhang
2021/12/08
1.6K0
说一说PHP7性能的变化
Opcache Preloading Opcache 预加载 新增 Opcache 预加载支持。预加载是在模块初始化的时候,将库和框架加载到 OPCache 中的过程
友儿
2022/09/11
8390
【Laravel系列2.3】Laravel运行命令行脚本
在上篇文章中,我们看到了 Laravel 中有个专门单独的目录,也就是 Console 目录,它是用于存放脚本文件的。这个脚本文件一般指的就是我们通过 php 命令来执行的命令行脚本,在许多框架中都有这样的功能。对于现代化的应用开发来说,一些数据统计、数据导出、队列处理等比较耗时的功能,以及一些自动化的后端运行程序,都需要使用这种命令行脚本来执行。
硬核项目经理
2023/03/03
1.7K0
【Laravel系列2.3】Laravel运行命令行脚本
【Laravel系列4.3】模型Eloquent ORM的使用(一)
先来说说 ORM 是什么,不知道有没有不清楚这个概念的小伙伴,反正这里就一道科普一下算了。ORM 的全称是 Obejct Relational Mapping ,翻译过来就是 对象关系映射 ,再说得直白一点,就是用 面向对象 里的对象来 映射 数据库中的数据。我们在关系型数据库中,一行数据就可以看成是一个对象,整个表就可以看成是这个对象的列表。这就是非常简单地针对 ORM 的理解。
硬核项目经理
2023/03/03
8.9K0
【Laravel系列4.3】模型Eloquent ORM的使用(一)
Laravel源码学习文章汇总
过去一年时间写了20多篇文章来探讨了我认为的Larave框架最核心部分的设计思路、代码实现。通过更新文章自己在软件设计、文字表达方面都有所提高,在刚开始决定写Laravel源码分析地文章的时候我地期望是自己和读者通过学习Laravel核心的代码能在软件设计上带来提高,这些提高主要是指两方面:
KevinYan
2019/10/13
9650
【Swoole系列6.5】Hyperf中的其它事项
关于 Hyperf 其它的内容我们就不多说了,毕竟框架这东西用得多了自然也就熟悉了。最重要的是——我的水平还不足以去深入地分析这个框架!
硬核项目经理
2023/03/03
6850
【Swoole系列6.5】Hyperf中的其它事项
Laravel-为WEB艺术家创造的简洁而优雅的PHP开发框架
PHP的开源框架还是挺多的,ThinkPHP、Laravel、YII、CI等,Laravel框架也是目前一个比较主流的框架,现在很多互联网的公司都在使用这个框架,Laravel框架的前身是symfon
沈唁
2018/06/06
1.1K0
【Swoole系列2.4】WebSocket服务
对于 Web 应用来说,最主流的当然就是我们之前学习过的 Http、TCP、UDP 这一类的应用。但是,最近这些年,特别是 HTML5 成为主流之后,WebSocket 应用日益丰富起来。要知道,之前我们在做后台时,如果要做消息通知之类的应用,全都是使用 JQuery 来进行 Ajax 轮询的。对于后台来说,这么做问题不大,但是如果你是要在前端页面做类似的功能,特别是一些客服功能的话,那可就费劲了。
硬核项目经理
2023/03/03
1.3K0
【Swoole系列2.4】WebSocket服务
【Laravel系列4.6】
今天学习的内容比较轻松,就讲两个小东西,而且也没什么特别的源码方面的内容。主要也是因为这两个小功能的应用会比较广泛,并且源码实现也非常简单易懂,我就简单的说一下源码大概的位置,大家直接自己看一下就好了。因此,这篇文章也可以看成是本系列教程学习的一个中场休息。
硬核项目经理
2023/03/03
1.4K0
【Laravel系列4.6】
【Laravel系列7.8】广播系统
广播系统指的是什么呢?在这里我们说的广播系统其实就是配合 WebSocket 实现的即时更新接口。什么意思呢?比如说在你的购物 App 上,如果订单状态发生了变化,比如卖家发货了,那么马上就会收到一条通知信息。当然,App 上使用的不是 WebSocket ,而是不同平台的推送机制,但它也是一种广播通知机制。如果你对 Redis 比较了解的话,也可以这么理解:它和 Redis 中的 Pub/Sub 也非常像,前端 SUBSCRIBE 监听频道,后端向频道里 PUBLISH 数据,就是这么个过程。
硬核项目经理
2023/03/03
2.3K0
【Laravel系列7.8】广播系统
【Laravel系列4.2】查询构造器
什么是查询构造器?其实就像我们上篇文章中学习过的使用原始 SQL 语句的方式来操作数据库一样,查询构造器这个东西就是在这个原始操作的基础上为我们封装了一系列的接口,能够让我们方便地来操作数据库。或者说,就是像我们很早前自己封装的那种 MySQL 类一样,框架帮我们完成了这一步。并且,最主要的是,它可以让我们以链式调用的形式来操作数据库,从而避免去写繁杂混乱的 SQL 语句。先卖个关子,想想这和哪个设计模式有关?(文中自会揭晓)
硬核项目经理
2023/03/03
16.8K0
【Laravel系列4.2】查询构造器
【Laravel系列4.4】模型Eloquent ORM的使用(二)
对于模型的探索我们还将继续。上篇文章中,只是简单地通过模型操作了一下数据库,并且学习了一下关联操作的知识。今天,我们继续学习模型中别的一些好玩的东西,不过,我们不会继续深入地学习模型中别的相关技巧。因为这些东西,都已经写在了官方文档中,而对于这个系列的文章来说,入个门,然后搞清楚原理才是最重要的,对于怎么使用这个事,大家自己好好研究就好了。而且,关于使用的内容,网上也有很多文章以及视频教程了,我也就不走别人的老路咯。
硬核项目经理
2023/03/03
2.8K0
【Laravel系列4.4】模型Eloquent ORM的使用(二)
🦣PHP凭啥被称为世界上最好的语言?这些真相你该知道
它并非是固步自封的存在,恰恰相反,PHP 正以一种令人咋舌的进化速度持续迭代升级。在代码执行效率上不断优化,在框架拓展性方面深度挖掘,在与新兴技术的融合上大步迈进,全方位地颠覆着大众对它过往的认知。今天,就跟随我们的脚步,一同深入解锁 PHP 那些隐藏在代码世界里的独特魅力,去领略它如何在后端开发领域持续闪耀光芒,缔造一个又一个互联网传奇。
Tinywan
2025/03/03
1380
🦣PHP凭啥被称为世界上最好的语言?这些真相你该知道
相关推荐
【Laravel系列1】进入 Laravel 的世界
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文