资讯专栏INFORMATION COLUMN

PHPer面试指南-Laravel 篇

alaege / 2692人阅读

摘要:简述的生命周期采用了单一入口模式,应用的所有请求入口都是文件。分发请求一旦应用完成引导和所有服务提供者都注册完成,将会移交给路由进行分发。此外,由于对动态方法的独特用法,也使测试起来非常容易。

本书的 GitHub 地址:https://github.com/todayqq/PH...

Laravel 作为现在最流行的 PHP 框架,其中的知识较多,所以多带带拿出来写一篇。

简述 Laravel 的生命周期

Laravel 采用了单一入口模式,应用的所有请求入口都是 public/index.php 文件。

注册类文件自动加载器 : Laravel通过 composer 进行依赖管理,无需开发者手动导入各种类文件,而由自动加载器自行导入。

创建服务容器:从 bootstrap/app.php 文件中取得 Laravel 应用实例 $app (服务容器)

创建 HTTP / Console 内核:传入的请求会被发送给 HTTP 内核或者 console 内核进行处理

载入服务提供者至容器:

在内核引导启动的过程中最重要的动作之一就是载入服务提供者到你的应用,服务提供者负责引导启动框架的全部各种组件,例如数据库、队列、验证器以及路由组件。

分发请求:一旦应用完成引导和所有服务提供者都注册完成,Request 将会移交给路由进行分发。路由将分发请求给一个路由或控制器,同时运行路由指定的中间件

服务提供者是什么?

服务提供者是所有 Laravel 应用程序引导启动的中心, Laravel 的核心服务器、注册服务容器绑定、事件监听、中间件、路由注册以及我们的应用程序都是由服务提供者引导启动的。

IoC 容器是什么?

IoC(Inversion of Control)译为 「控制反转」,也被叫做「依赖注入」(DI)。什么是「控制反转」?对象 A 功能依赖于对象 B,但是控制权由对象 A 来控制,控制权被颠倒,所以叫做「控制反转」,而「依赖注入」是实现 IoC 的方法,就是由 IoC 容器在运行期间,动态地将某种依赖关系注入到对象之中。

其作用简单来讲就是利用依赖关系注入的方式,把复杂的应用程序分解为互相合作的对象,从而降低解决问题的复杂度,实现应用程序代码的低耦合、高扩展。

Laravel 中的服务容器是用于管理类的依赖和执行依赖注入的工具。

Facades 是什么?

Facades(一种设计模式,通常翻译为外观模式)提供了一个"static"(静态)接口去访问注册到 IoC 容器中的类。提供了简单、易记的语法,而无需记住必须手动注入或配置的长长的类名。此外,由于对 PHP 动态方法的独特用法,也使测试起来非常容易。

Contract 是什么?

Contract(契约)是 laravel  定义框架提供的核心服务的接口。Contract 和 Facades 并没有本质意义上的区别,其作用就是使接口低耦合、更简单。

依赖注入的原理?

这个不解释,这是理解 IoC 容器的前提。

谈谈 Laravel 和 YII 框架的区别

在 YII 框架中的路由是通过书写 Controller、Action 间接定义路由,而 Laravel 中是在 route 路由文件中直接定义路由入口

Laravel 提供 ORM 对象关系映射,使读写数据库的操作更加简单

Laravel 提供更多的 Artisan 命令和脚手架开发

Laravel 的 Composer 扩展包比 Yii 框架更多,开发更加高效

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/28157.html

相关文章

  • PHPer面试指南-Web

    摘要:扩展阅读收集的前端面试题和答案前端开发面试题史上最全的前端面试题汇总及答案前端工程师手册协议工作原理协议运行机制的概述 本书的 GitHub 地址:https://github.com/todayqq/PH... 对于大公司,很少会有全栈工程师这个岗位,全栈是个花哨的词,对于现在比较热门的技术,不论是 Vue 还是 Laravel,只要智商不差,看着文档,都能写出一个 CURD 来,...

    cnio 评论0 收藏0
  • PHPer面试指南-前言

    摘要:先说一下面试时的心态,刚入门的程序员,技术实力不高,又大多不善言谈,面试一旦遇到难题,很容易心态失衡惊慌失措语无伦次,最终丢掉了。其实大可不必,心态坦然,是面试必备的一点。 本书的 GitHub 地址:https://github.com/todayqq/PH... 作为一位程序员,面试过多次,也面试过很多人,最近又在找工作,总结一下面试经验和面试题,希望可以帮到正在找工作的小伙伴们...

    includecmath 评论0 收藏0
  • PHPer 面试指南-扩展阅读资源整理

    摘要:前端篇收集的前端面试题和答案前端开发面试题史上最全的前端面试题汇总及答案前端工程师手册协议工作原理协议运行机制的概述协议篇原理原理解析的工作原理与的区别理解后端篇年的面试总结垃圾回收机制面向对象设计浅谈说清楚是什么和的区别索引原理及慢查 前端篇 收集的前端面试题和答案 前端开发面试题 史上最全的web前端面试题汇总及答案 前端工程师手册 HTTP协议:工作原理 SSL/TLS协议运行...

    wemall 评论0 收藏0
  • PHPer面试指南-PHP

    摘要:本书的地址篇收集了一些常见的基础进阶面试题,基础的面试题不再作答。如何实现持久化持久化,将在内存中的的状态保存到硬盘中,相当于备份数据库状态。相当于备份数据库接收到的命令,所有被写入的命令都是以的协议格式来保存的。 本书的 GitHub 地址:https://github.com/todayqq/PH... PHP 篇收集了一些常见的基础、进阶面试题,基础的面试题不再作答。 基础篇 ...

    stackvoid 评论0 收藏0
  • 2018 PHP 面试总结

    摘要:最近面试了不少公司,正好把记得的问题做个总结。抽象类的接口的区别,不在于编程实现,而在于程序设计模式的不同。一般来讲,抽象用于不同的事物,而接口用于事物的行为。 最近面试了不少公司,正好把记得的问题做个总结。 本文 github 会持续更新 公众号 搜索 苏生不惑 或者扫二维码关注,每周更新。 showImg(https://segmentfault.com/img/bVbsYyM?w...

    aboutU 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<