Laravel核心解读--完结篇

news/2024/7/3 12:56:02 标签: php, javascript, java

过去一年时间写了20多篇文章来探讨了我认为的Larave框架最核心部分的设计思路、代码实现。通过更新文章自己在软件设计、文字表达方面都有所提高,在刚开始决定写Laravel源码分析地文章的时候我地期望是自己和读者通过学习Laravel核心的代码能在软件设计上带来提高,这些提高主要是指两方面:

  • 通过学习Laravel核心的代码来辅助理解软件设计行业中经常提及的核心概念,通过学习像IocContainer、面向对象的五大原则SOLID 是怎么应用到框架设计中去的来指导应该如何去做软件开发设计。这方面对你的收益应该是跳出Laravel框架和PHP语言层面的,当你需要切换到其他框架和语言时这些收益仍会反馈给你。
  • 熟练掌握Laravel的使用,虽然很多人说框架只是一个工具不应该花太多时间在工具的研究上,但是现实时开发者群体大部分人并没有在头部的那几家大公司,也不架构师,我们多数的工作还是在写业务代码,那么既然你需要Laravel这个工具帮你完成每天的任务,那么为了尽可能高效率高质量的完成项目,确实是需要多了去看看框架的源码,了解一些框架常用的方法在positive和negative时的行为到底是什么(各种情况下的返回值和抛出的异常),知道怎么使用ORM才能让查询更高效等等,这些内容往往在框架的文档都是很少提及的,需要去看源码了解一下,如果你只会文档里提到的那些典型的用法显然不能算是熟练掌握的。

Laravel整个框架设计到的内容有很多,其他的组件我也就不再一一去写文章梳理了, 相信你在认真看完这个系列的文章后,假如你在使用其他组件过程中遇到了诡异的问题,或者好奇框架是怎么帮你实现功能的?你完全有能力去梳理其他组件的源码实现来解决你的疑惑。

为了大家阅读方便,我把这些源码学习的文章汇总到这里。

  • 类地反射和依赖注入
  • IocContainer
  • 服务提供者
  • Facades
  • Route
  • Middleware
  • 控制器
  • Request
  • Response
  • Database基础
  • QueryBuilder
  • 模型CRUD
  • 模型关联
  • 事件系统
  • Auth认证系统(基础介绍)
  • Auth认证系统(实现细节)
  • 自定义你的Auth认证系统
  • Session
  • Cookie
  • Contracts契约
  • 加载ENV配置
  • HTTP内核
  • Console内核
  • 异常处理

最后还是回到上面说的,框架只是工具如果想要在软件行业有所发展还是要把更多的精力投入到内功修炼上,所谓内功就是这些经过时间沉淀下来的基础知识,框架层出不穷,但是它们应用的基础知识却甚少改变。数据库、HTTP、算法和数据结构这些都是编程的内功,只有内功深厚了才能解决遇到的复杂问题。

推荐几个我认为挺好的修炼内功的专栏给大家:

程序员的数据基础课

MySQL实战45讲

数据结构与算法

算法面试通关40讲

Spring boot和Spring Cloud实战教程

当然还有日新月异的前端知识也是需要会基础的用法的,最起码了解一下团队内部使用的前端框架的基础知识,这样对咱们做系统设计也会有帮助,最近在另外一个平台上看到分享的一个免费教程使用Laravel和Vue构建API驱动的应用,讲的非常好,希望Vue能快速入门的可以跟着教程一起动手练习练习。


http://www.niftyadmin.cn/n/1147684.html

相关文章

大连马拉松比赛期间多条公交临时改线移站

为了保证第22届大连国际马拉松赛顺利进行,根据大连市公安局交通警察支队《关于第22届大连国际马拉松赛期间部分道路采取临时交通管制措施的通告》,下列公交车线路将临时改线、移站,具体事宜通告如下: 16、29、405、801路汽车及旅…

南方都市报:红心照耀MSN

16日,许多网友在打开MSN的时候都有点惊讶,发现MSN界面一片飘红,一众好友签名前都多了一颗红心和“CHINA”字样。有网友以“那场面是相当的壮观”来形容。 在国际上一些组织和个体对北京奥运提出抵制的大背景下,中国网友以自己的…

好用工具推荐

文章目录1、LICEcap - Github/CSDN 添加gif动图2、 XSwitch - 跨域3、pdf 文件 转 word4、最新Axure谷歌浏览器Chrome扩展程序安装方法1、LICEcap - Github/CSDN 添加gif动图 写博客的时候,遇到复杂的过程,用动图表述,直观有效又显得逼格很高…

webpackPlugin插件总结

功能类 html-webpack-plugin 自动生成html,基本用法: new HtmlWebpackPlugin({filename: index.html, // 生成文件名template: path.join(process.cwd(), ./index.html) // 模班文件 }) copy-webpack-plugin 拷贝资源插件 基本用法: new Copy…

【移动端布局】1 -基本概念:设备像素、css像素、屏幕尺寸、像素密度ppi、像素比dpr、viewport、meta标签、样式重置

文章目录0、关于web app1、移动端与pc端的区别2、尺寸相关概念2.1、设备像素(物理像素)2.2、CSS像素(设备独立像素,逻辑像素)2.3、屏幕的尺寸2.4、像素密度PPI - 每英寸(面积)上像素(设备像素)的…

CPI疯涨人民币贬值 存款10万一年缩水6000元

存款10万一年缩水6000 CPI疯涨人民币贬值,现金放在家中损失更达8000多元 本报讯 (记者 伊晓霞)昨日国家统计局公布了3月份的最新统计数据,3月的居民消费价格总水平同比上涨8.3%,而目前一年期定期存款利率只有4.14%,扣…

es6学习之let和const

1. 块级作用域 es5只有函数作用域和全局作用域,es6增加了块级作用域 if (true){ } //es5中,if语句不是一个作用域 //es6中,if语句是一个块级作用域 复制代码let和const 声明的变量只在块级作用域内有效 2. let let类似于var的用法 3. cons…

【移动端布局】2 - 适配方法:百分比适配、viewport缩放适配、dpr缩放适配、rem适配、vw适配

文章目录关于适配1、百分比 适配2、viewport缩放适配3、DPR缩放适配4、rem适配4.1 em 和 rem的区别4.2 rem适配原理4.3 js动态设置html字体大小 - 笨方法,要自己算元素占几个rem4.4 js动态设置html字体大小 - rem的最优写法!!!4.5…