Code Monkey home page Code Monkey logo

learning_laravel_kernel's Introduction

Learning_Laravel_Kernel

Laravel核心代码学习

前言

如果你对Laravel里面的依赖注入、服务绑定、服务解析等等这些东西很好奇,并且觉得只有理解了一个框架的核心代码才能真正把一个框架用好才能写出最佳实践,那么这个教程对你会很有帮助。教程完整覆盖了Laravel核心的所有内容,并且根据开发者使用Laravel的通用场景开始逐步深入内核讲解整个框架核心流程中涉及到的方方面面,整个教程的目录顺序也是根据用Laravel进行开发时常涉及的部分编排的。相信你认真学完这个教程自己融汇贯通后就能完全掌握Laravel并胜任用它设计和架构生产系统的职责。

面向的人群

要想很好地理解文章的内容你需要具备一定的PHP基础和Laravel的知识,我并不会解释核心里的每一行代码,更多的是通过梳理代码流程来解释Laravel核心模块里最典型功能的设计思路和具体实现。所以我希望读者可以将文章内容看作是源代码的导读,跟随文章自己逐步地去看一遍Laravel每个核心组件的代码,如果遇到理解起来比较困难的地方就去补齐那里用到的知识再来继续阅读,我也希望读者在理解了文章里说的那些典型功能后能够自己再去举一三地看看模块里其他功能的源代码。相信看完Laravel核心的代码后你不仅能更熟练地使用Laravel也能在其它基础知识方面有所提高。

涉及的内容

文章主要专注于Laravel核心的学习,包括:服务容器、服务提供器、中间件、路由、Facades、事件驱动系统、Auth用户认证系统以及作为核心服务的DatabaseRequestResponseCookieSessionLaravel里其它的部分也都是作为服务注册到服务容器里提供给应用使用的,当你理解了上面那些东西后再去看其它的服务也就会很容易理解了。在学习源码的过程中我会向读者解释关于这些核心模块的常见问题比如:使用DB或者Model操作数据库时Laravel是什么时候连接上数据库的? 注册到容器的服务是怎么被解析出来的等等。

关于框架版本

在通过这个项目学习Laravel核心代码时请使用Laravel5.5版本,由于服务容器和中间件两篇文章成稿比较早那会还在使用5.2版本的Laravel做项目所以引用的代码也来自5.2版本,其余章节的代码均引用自Laravel5.5的核心,两个版本的核心代码差异很小我已经在这两篇文章中标注出差异的地方所以不影响读者使用这个项目来学习Laravel5.5版本的核心代码。

Contact

文章目录

其他推荐

learning_laravel_kernel's People

Contributors

kevinyan815 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

learning_laravel_kernel's Issues

关于写作计划和交流反馈

关于接下来要写什么:

你们在这个时间点看到的文章已经把Laravel的Database部分都讲完了,接下来的计划是:

事件系统、用户认证系统、异常处理、Session以及Laravel应用请求整个生命周期的总结,当然我也想把
Composer原理和Laravel中用到的设计模式说一下以便更好的理解。时间来到了6月,希望能在18年把Laravel这些核心相关的东西大体梳理完,把年初挖的这个坑填上。

关于问题反馈和交流:
我在写这些文章时都会尽量严谨防止由于自己的失误误导大家,有的部分源码过多也就难免会有贴上了大块源码的地方,如果有看不懂的也欢迎针对话题新开issue来讨论。

Laravel Cookie源码解析

Laravel Cookie源码分析,首先还是从Cookie如何在Laravel中应用开始逐步讲解Laravel框架中Cookie的服务注册、生成Cookie以及获取Cookie。 梳理过程中发现Laravel在设置Cookie时全程没有调用过PHP原生的setcookie函数,而是通过依赖的Symfony框架的Response对象将Cookie先暂存在其引用的headers对象里最后在响应发送给客户端时前的send方法里将Cookie设置到了响应首部字段Set-Cookie中。

文章比较长,有不明白的地方可以留言,我有时间了一定会第一时间回复。

文章链接:https://github.com/kevinyan815/Learning_Laravel_Kernel/blob/master/aritcles/Cookie.md

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.