本书的GitHub地址:https://github.com/todayqq/PH...Laravel作为最流行的PHP框架,知识点非常多,所以单独写文章。Laravel生命周期简述Laravel采用单入口模式,应用的所有请求入口都是public/index.php文件。注册class文件autoloader:Laravel通过composer进行依赖管理,不需要开发者手动导入各种class文件,而是由autoloader自己导入。创建服务容器:从bootstrap/app.php文件中获取Laravel应用实例$app(服务容器)创建HTTP/Console内核:传入的请求会被发送到HTTP内核或console内核进行处理加载服务提供者到容器:内核引导过程中最重要的操作之一是将服务提供程序加载到您的应用程序中。服务提供者负责引导框架的所有各种组件,例如数据库、队列、验证器和路由组件。分发请求:一旦应用程序启动并注册了所有服务提供者,请求将被移交给路由器进行分发。路由会把请求分发到一个路由或者控制器,路由同时指定的中间件服务提供者是什么?服务提供者是所有Laravel应用程序的引导中心。Laravel的核心服务器、注册表服务容器绑定、事件监听器、中间件、路由注册表和我们的应用程序都由服务提供者引导。什么是IoC容器?IoC(InversionofControl)译为“控制反转”,也称为“依赖注入”(DI)。什么是“控制反转”?对象A的功能依赖于对象B,但是控制权被对象A所控制,控制权被颠倒了,所以称为“控制反转”,而“依赖注入”是一种实现IoC的方法,即就是,在IoC容器的运行期间,动态地向对象中注入某种依赖性。简单来说,它的作用就是利用依赖注入,将复杂的应用程序分解成相互协作的对象,从而降低问题解决的复杂度,实现应用程序代码的低耦合和高扩展性。Laravel中的服务容器是管理类依赖和进行依赖注入的工具。什么是门面?Facades(一种设计模式,通常翻译为外观模式)提供了一个“静态”(static)的接口来访问注册在IoC容器中的类。提供简单易记的语法,无需记住必须手动注入或配置的长类名。此外,由于PHP动态方法的独特使用,非常容易测试。什么是合同?契约(contract)是laravel定义框架提供的核心服务的接口。Contract和Facades没有本质的区别,它的作用就是让接口的耦合度更低,更简单。依赖注入的原理?这个就不解释了,这是理解IoC容器的前提。下面说说Laravel和YII框架的区别。在YII框架中,路由是通过编写Controller和Action来间接定义的,而在Laravel中,路由入口是直接在路由路由文件中定义的。Laravel提供ORM对象关系映射,让读写数据库的操作更简单Laravel提供更多的Artisan命令和脚手架开发Laravel的Composer扩展包比Yii框架多,让开发更高效
