PHPer面试指南-laravel 篇

PHPer面试指南-laravel 篇

大家好,又见面了,我是全栈君。

点击上方“码农编程进阶笔记”,选择“关注公众号”

技术文章第一时间送达!

  • 简述 Laravel 的生命周期

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

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

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

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

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

  5. 分发请求:一旦应用完成引导和所有服务提供者都注册完成,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 框架的区别

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

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

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

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

关注公众号,回复「进群」即可进入PHP高级技术交流群。

PHPer面试指南-laravel 篇

PHPer面试指南-laravel 篇

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/112052.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • STM32CubeMX | STM32 HAL库方式的微秒延时函数

    STM32CubeMX | STM32 HAL库方式的微秒延时函数STM32CUBEMX系列教程之HAL库方式的微秒延时函数标准库一般是使用系统嘀嗒定时器来进行微妙级别的延时,而HAL库官方使用SysTick的地方非常多,改代码容易引起错乱。网上的代码使用定时器进行微秒级别延时(不知道该方式的请自行搜索),总是卡在__HAL_TIM_GET_COUNTER,所以自己实现一个微秒级别延时函数尤为重要。#defineCPU_FREQUENCY_MHZ…

    2022年6月29日
  • iOS视图控制器之间delegate传值教程

    iOS视图控制器之间delegate传值教程

    2022年1月22日
  • opengl 透视投影矩阵_matlab投影函数

    opengl 透视投影矩阵_matlab投影函数图形学惯例下的平行投影矩阵推导首先,确定我们使用以下惯例:将视图坐标系中的顶点Pe变换到NDC坐标系中的顶点Pn。视图坐标系使用右手坐标系,NDC也使用右手坐标系。NDC范围为-1<=x<=1,-1<=y<=1,-1<=z<=1NDC和屏幕的对应关系为:x=1的点在屏幕右边,x=-1在左边;y=1在顶部,y=-1在底部;z=1的点距…

    2022年9月1日
  • Guava之Stopwatch「建议收藏」

    Guava之Stopwatch「建议收藏」Guava之Stopwatch计时器Stopwatch用来计算经过的时间(精确到纳秒)。这个类比调用System.nanoTime()优势在于:性能表现形式更丰富一、类声明以下是com.google.common.base.Stopwatch类的声明:publicfinalclassStopwatchextendsObject二、类方法方法类型方法…

    2022年6月23日
  • 一文看懂Web后端开发「建议收藏」

    一文看懂Web后端开发「建议收藏」一文看懂Web后端开发前言由于网络上系统地介绍后端开发的文章实在太少,而最近有恰巧有许多同学问我“什么是后端开发?”、“你为什么喜欢后端开发?”、“做后端都需要学什么?”,那么我们就来讲一讲,到底什么才是后端开发。定义后端开发(Back-EndDevelopment,也称服务端开发、服务器端开发等)是创建完整可运行的Web应用服务端程序(服务端程序和资源合称为后端,即在服务器上运行的、不涉及用户界面的部分)的过程,是Web应用程序开发的一部分。后端开发者使用Java、Golang等语言及其衍生的各

    2022年6月29日
  • 常用图像算法汇总_图像修复算法

    常用图像算法汇总_图像修复算法图12020年中国计算机视觉在职人员研究领域兴趣变化2021年中国计算机视觉在学术界和产业界各领域热度排名1.目标检测常用算法:yolov3、v4、v5。2.底层视觉与图像处理潜在应用:由于外界环境影响,导致图像成像效果不尽人意,从而影响后续对视频图像的处理。2.1图像超分辨率超分辨率(SuperResolution,SR)是从给定的低分辨率(LR)图像中恢复高分辨率(HR)图像的过程,是计算机视觉的一个经典应…

    2022年11月2日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号