下面由laravel教程欄目給大家總結(jié)面試官必問(wèn)的50道 laravel 面試題和答案 ,希望對(duì)需要的朋友有所幫助!
1) 什么是 Laravel ?
Laravel 是一個(gè)開(kāi)源的、廣泛使用的 php 框架。該平臺(tái)主要用于利用 mvc 架構(gòu)模式開(kāi)發(fā) web 應(yīng)用程序。Laravel 是在 MIT 許可下發(fā)布的。
因此,其源代碼托管在 github 上。它遵循可靠且準(zhǔn)確的語(yǔ)言規(guī)則,因此是可靠的 PHP 框架。
2) 定義 composer.
它是 PHP 的應(yīng)用程序級(jí)程序包管理器。它提供了用于管理 PHP 軟件依賴(lài)項(xiàng)和庫(kù)的標(biāo)準(zhǔn)格式。
HTTP 中間件是一種用于過(guò)濾 HTTP 請(qǐng)求的技術(shù)。 Laravel 包含一個(gè)中間件,用于檢查應(yīng)用程序用戶(hù)是否已通過(guò)身份驗(yàn)證。
4) 聚合查詢(xún)生成器的方法名稱(chēng)
查詢(xún)構(gòu)建器的聚合方法是:1) max ()、2) min ()、3) sum ()、4) avg () 和 5) count ()。
5) 什么是 Route ?
路由基本上是由 URI (統(tǒng)一資源標(biāo)識(shí)符) 指定的端點(diǎn)。它在 Laravel 應(yīng)用程序中充當(dāng)指針。
最常見(jiàn)的是,路由指向控制器上的方法,還指出哪些 HTTP 方法可以訪問(wèn)該 URI。
6) 為什么使用 Route?
路由存儲(chǔ)在項(xiàng)目根目錄下 /routes 文件夾下的文件內(nèi)。默認(rèn)情況下,有幾個(gè)不同的文件對(duì)應(yīng)于應(yīng)用程序的不同 “面”(“面” 來(lái)自六角形體系結(jié)構(gòu)方法)。
7) 什么是定義路由?
定義路由是一種生成路由路徑的方法。 這些路由的鏈接可以通過(guò)在定義路由方法中進(jìn)行說(shuō)明
8) 解釋通用 Laravel 應(yīng)用程序中使用的重要目錄。
常見(jiàn)的 Laravel 應(yīng)用程序中使用的目錄是:
- App/: 這是我們的應(yīng)用程序代碼所在的源文件夾。所有控制器,策略和模型都在此文件夾中。
- Config/: 保存應(yīng)用程序的配置文件。這些通常不會(huì)直接修改,而是取決于在應(yīng)用程序根目錄下的 .env (環(huán)境) 文件中設(shè)置的值。
- database/: 存放數(shù)據(jù)庫(kù)文件,包括 遷移,數(shù)據(jù)填充,和測(cè)試工廠。
- public/: 可公開(kāi)訪問(wèn)的文件夾,其中包含已編譯資源,當(dāng)然還有 index.php 文件。
9) 什么是 Controller?
控制器是 Laravel 所基于的 “MVC”(模型 – 視圖 – 控制器) 體系結(jié)構(gòu)中的 “ C”。
10) 解釋 Laravel 中的反向路由。
反向路由是一種基于符號(hào)或名稱(chēng)生成 URL 的方法。它使您的 Laravel 應(yīng)用程序變得靈活。
11) 說(shuō)明 CodeIgniter 和 Laravel 之間的區(qū)別。
Parameter | CodeIgniter | Laravel |
---|---|---|
支持 ORM | 不支持對(duì)象關(guān)系映射. | 支持 ORM. |
提供身份驗(yàn)證 | 確實(shí)提供了用戶(hù)身份驗(yàn)證. | 具有內(nèi)置的用戶(hù)身份驗(yàn)證. |
編程范例 | 面向組件. | 面向?qū)ο?/b>. |
對(duì)其他數(shù)據(jù)庫(kù)的支持 | 支持 microsoft sql Server, oracle, mysql, IBM DB2, postgresql, JDBC 和 orientDB 兼容. | 它支持 PostgreSQL,MySQL,mongodb 和 Microsoft BI,但 CodeIgniter 還支持其他數(shù)據(jù)庫(kù),例如 Microsoft SQL Server,DB2,Oracle 等。 |
https 支持 | CodeIgniter 部分支持 HTTPS。因此,程序員可以使用 URL 通過(guò)創(chuàng)建 PATS 來(lái)保護(hù)數(shù)據(jù)傳輸過(guò)程。 | Laravel 支持自定義 HTTPS 路由。程序員可以為他們定義的 HTTPS 路由創(chuàng)建特定的 URL。 |
12) 解釋 Laravel 中 traits 的特征。
Laravel traits 是包含在另一個(gè)類(lèi)中的一組函數(shù)。 一個(gè) trait 就像一個(gè)抽象類(lèi)。您不能直接實(shí)例化它,但是可以在其他的類(lèi)中使用它的方法。
13) 解釋 Laravel 中契約的概念。
它們是 Laravel 框架的接口集合。 這些契約提供核心服務(wù)。 Laravel 中的契約包括相應(yīng)的框架實(shí)現(xiàn)。
14) 如何注冊(cè)您的服務(wù)提供者?
您可以在 config/pp.php 配置文件中注冊(cè)服務(wù)提供者,該配置文件包含一個(gè)數(shù)組,您可以在其中配置服務(wù)提供者的類(lèi)名。
15) 如何定義 Laravel 的門(mén)面?
所有的門(mén)面都定義在 IlluminateSupportFacades 命名空間當(dāng)中。
16) 說(shuō)明 get 與 post 之間的區(qū)別
Get 方法允許在請(qǐng)求頭部 (header) 中發(fā)送有限數(shù)量的數(shù)據(jù)。Post 允許在正文中發(fā)送大量數(shù)據(jù)。
17) 列出 Laravel 5.6 中的軟件包
Laravel 5.6 中的默認(rèn)軟件包為:
1) Envoy、 2) Passport、 3) Socialite、 4) Cashier、 5) Horizon、 6) Scout.
18) Laravel 中的服務(wù)容器是什么
服務(wù)容器是用于在 Laravel 中執(zhí)行依賴(lài)注入的工具。
19) 如何在 Laravel 中開(kāi)啟查詢(xún)?nèi)罩荆?/strong>
你可以使用 enableQueryLog 方法在 Laravel 中啟用查詢(xún)?nèi)罩尽?/p>
20) 解釋 Laravel 中事件的概念。
事件是一種動(dòng)作或者操作,可以幫助您訂閱和偵聽(tīng) Laravel 應(yīng)用程序中發(fā)生的事件。當(dāng)發(fā)生任何活動(dòng)時(shí),Laravel 會(huì)自動(dòng)出發(fā)某些事件。
21) 說(shuō)一下依賴(lài)注入和依賴(lài)注入的類(lèi)型.
它是‘其中一種對(duì)象依賴(lài)于另一個(gè)對(duì)象’的技術(shù)。
依賴(lài)注入有三種類(lèi)型:
- 1) 構(gòu)造函數(shù)注入
- 2) setter 注入
- 3) 接口注入.
22) 使用 laravel 有什么優(yōu)勢(shì)嗎?
下面是 laravel 的主要優(yōu)點(diǎn):
- Laravel 具有 blade 模板引擎,可創(chuàng)建動(dòng)態(tài)布局并增加編譯任務(wù).
- 可以很簡(jiǎn)單的復(fù)用代碼.
- 您不需要手動(dòng)維護(hù)和包含路徑,因?yàn)?Laravel 具有自動(dòng)加載功能.
- 該框架可幫助您使用 LOC 容器制作新工具.
- Laravel 提供了一個(gè)版本控制系統(tǒng),可幫助簡(jiǎn)化遷移管理.
23) 說(shuō)明 Laravel 中驗(yàn)證的概念.
在設(shè)計(jì)任何 Laravel 應(yīng)用程序時(shí),驗(yàn)證是一個(gè)重要的概念。它可以確保在將數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫(kù)之前,數(shù)據(jù)始終采用預(yù)期的格式。 Laravel 提供了多種驗(yàn)證數(shù)據(jù)的方法。
基礎(chǔ)控制器特征是使用 ValidatesRequests 類(lèi),該類(lèi)提供了一種有用的方法來(lái)驗(yàn)證來(lái)自客戶(hù)端計(jì)算機(jī)的請(qǐng)求。
24) ORM 代表什么?
ORM 代表對(duì)象關(guān)系映射
25) 如何減少 Laravel 中的內(nèi)存使用?
在處理大量數(shù)據(jù)時(shí),可以使用 cursor 方法以減少內(nèi)存使用量
26) 列出 Laravel Eloquent 中可用的關(guān)系類(lèi)型。
Laravel Eloquent 中可用的關(guān)系類(lèi)型有:
- 1) 一對(duì)一
- 2) 一對(duì)多
- 3) 多對(duì)多
- 4) 多對(duì)多關(guān)聯(lián) hasManyThrough
- 5) 多態(tài)關(guān)系
27) 定義一下 Laravel 使用的模板引擎.
Blade 是 Laravel 使用的功能強(qiáng)大的模板引擎。
28) 列出 Laravel 支持的數(shù)據(jù)庫(kù).
Laravel 支持以下數(shù)據(jù)庫(kù):
- PostgreSQL
- SQL Server
- SQLite
- MySQL
29) 為什么遷移很重要?
遷移非常重要是因?yàn)樗试S您通過(guò)維護(hù)數(shù)據(jù)庫(kù)一致性來(lái)共享應(yīng)用程序。
如果不進(jìn)行遷移,則很難共享任何 Laravel 應(yīng)用程序。
它還允許您同步數(shù)據(jù)庫(kù)。
30) 定義 Lumen
Lumen 是一個(gè)微型框架。它是基于 Laravel 服務(wù)和 REST API 的更小,更快的版本。
31) 解釋 PHP artisan
artisan 是 Laravel 的命令行工具。 它提供的命令可幫助您輕松構(gòu)建 Laravel 應(yīng)用程序。
32) 如何生成鏈接?
Laravel 用 helpers 函數(shù) 來(lái)生成鏈接。 當(dāng)您在模板和 API 響應(yīng)中建立鏈接時(shí),這將很有幫助。
33) 哪個(gè)類(lèi)用于處理異常?
Laravel 異常由 App.exceptions.handler 類(lèi)處理。
34) 什么是常見(jiàn)的 HTTP 錯(cuò)誤代碼?
最常見(jiàn)的 HTTP 錯(cuò)誤代碼是:
– 錯(cuò)誤 404 –未找到頁(yè)面時(shí)顯示。
– 錯(cuò)誤 – 401 –未授權(quán)錯(cuò)誤時(shí)顯示
35) 在 Laravel 中解釋 Fluent 查詢(xún)生成器。
它是一個(gè)數(shù)據(jù)庫(kù)查詢(xún)生成器,它提供了方便,快捷的界面來(lái)創(chuàng)建和運(yùn)行數(shù)據(jù)庫(kù)查詢(xún)。
36) dd () 函數(shù)的用途是什么?
此函數(shù)用于將變量的內(nèi)容打印到瀏覽器。 dd 的完整格式是 Dump and die。
37) 列出 Laravel 中使用的常見(jiàn) artisan 命令。
Laravel 支持以下工匠命令:
- PHP artisan down;
- PHP artisan up;
- PHP artisan make:controller;
- PHP artisan make:model;
- PHP artisan make:migration;
- PHP artisan make:middleware;
38) 在 Laravel 中 如何配置郵件發(fā)送?
Laravel 提供了一些 API,可以在本地和實(shí)時(shí)服務(wù)器上發(fā)送電子郵件。
39) 解釋授權(quán)
這是一種使用密碼標(biāo)識(shí)用戶(hù)登錄憑據(jù)的方法。在 Laravel 中,可以使用帶有兩個(gè)參數(shù) 1) 用戶(hù)名和 2) 密碼的會(huì)話來(lái)管理它。
40) delete ():從數(shù)據(jù)庫(kù)表中刪除所有記錄
-delete ():從數(shù)據(jù)庫(kù)表中刪除所有記錄。
-softDeletes ():不會(huì)從表中刪除數(shù)據(jù)。它用于將任何記錄標(biāo)記為已刪除。
41) 如何在 Laravel 中制作實(shí)時(shí)的 sitemap.xml 文件?
您可以創(chuàng)建網(wǎng)站的所有網(wǎng)頁(yè),以告知搜索引擎有關(guān)組織網(wǎng)站內(nèi)容的信息。搜索引擎的搜尋器會(huì)智能地讀取此文件以對(duì)網(wǎng)站進(jìn)行搜尋。
42) 解釋說(shuō)明 Laravel 中的 faker.
它是用于創(chuàng)建偽造數(shù)據(jù)的一種模塊或軟件包。此數(shù)據(jù)可用于測(cè)試目的
它也可以用于生成:
- 1) 數(shù)字
- 2) 地址
- 3)DateTime
- 4) 付款
- 5) Lorem 文本。
43) 您將如何檢查表是否在數(shù)據(jù)庫(kù)中存在?
使用 Laravel 中的 hastable () 函數(shù)檢查所需的表是否在數(shù)據(jù)庫(kù)中存在。
44) Laravel 中 insert () 和 insertGetId () 函數(shù)之間的顯著區(qū)別是什么?
- Insert (): 此函數(shù)僅用于將記錄插入數(shù)據(jù)庫(kù)。 不返回自增 ID
- InsertGetId (): 此函數(shù)會(huì)在表中插入一條記錄,但當(dāng) ID 字段自動(dòng)遞增時(shí)使用。(插入記錄并返回自增的 ID)
45) 解釋說(shuō)明 Laravel 中的活動(dòng)記錄 – active record
在活動(dòng)記錄中,類(lèi)映射到您的數(shù)據(jù)庫(kù)表。它可以幫助您處理 CRUD 操作。
46) 列出 Laravel 中的基礎(chǔ)概念
以下是 laravel 中用到的基礎(chǔ)概念:
- 路由
- Eloquent ORM
- 中間件
- 安全
- 緩存
- Blade 模板
47) 定義隱式控制器。
隱式控制器可幫助您定義適當(dāng)?shù)穆酚蓙?lái)處理控制器操作。您可以使用 Route :: controller () 方法在 route.php 文件中定義它們。
48) 如何在 Laravel 模型中自定義表名?
自定義表名,您可以重寫(xiě) protected 變量 $ table 的值。
49) 什么是 MVC 框架?
它是模型,視圖和控制器:
- Model: 模型定義編寫(xiě) Laravel 應(yīng)用程序的邏輯。
- View: 它涵蓋了 Laravel 應(yīng)用程序的 ui 邏輯。
- Controller: 它是模型和視圖之間的接口。這是用戶(hù)與應(yīng)用程序交互的一種方式。
50) 定義 @include.
@include 用于加載多個(gè)模板視圖文件。它可以幫助您將視圖包括在另一個(gè)視圖中。用戶(hù)還可以在一個(gè)視圖中加載多個(gè)文件。
【推薦:最新的五個(gè)Laravel視頻教程】
# 數(shù)據(jù)庫(kù)# php# mysql# http# 對(duì)象# sql# 接口# https# laravel# composer# 事件# 架構(gòu)# oracle# microsoft# github# xml# delete# table# 搜索引擎# database# 中間件# ui# 指針# postgresql# count# public# 面向?qū)ο?/a># mvc# include# 命名空間# mongodb# 標(biāo)識(shí)符# 構(gòu)造函數(shù)# protected# 多態(tài)# die