91個基于Laravel的常見面試題(附答案解析)

91個基于Laravel的常見面試題(附答案解析)

以下是經常問到的 laravel 和 PHP 相關的面試問題,以便菜鳥以及有經驗的應聘者找到合適的工作。

1) 什么是 Laravel ?

Laravel是一個開源的、廣泛使用的PHP框架。該平臺主要用于利用MVC架構模式開發web應用程序。Laravel是在MIT許可下發布的。

因此,其源代碼托管在GitHub上。它遵循可靠且準確的語言規則,因此是可靠的PHP框架。

2) 定義 Composer.

它是PHP的應用程序級程序包管理器。它提供了用于管理PHP軟件依賴項和庫的標準格式。

3) 什么是 HTTP 中間件?

HTTP中間件是一種用于過濾HTTP請求的技術。 Laravel包含一個中間件,用于檢查應用程序用戶是否已通過身份驗證。

4) 聚合查詢生成器的方法名稱

查詢構建器的聚合方法是:1)max(),2)min(),3)sum(),4)avg()和5)count()。

5) 什么是 Route ?

路由基本上是由URI(統一資源標識符)指定的端點。它在Laravel應用程序中充當指針。

最常見的是,路由指向控制器上的方法,還指出哪些HTTP方法可以訪問該URI。

6) 為什么使用 Route?

路由存儲在項目根目錄下/ routes文件夾下的文件內。默認情況下,有幾個不同的文件對應于應用程序的不同“面”(“面”來自六角形體系結構方法)。

8) 解釋通用 Laravel 應用程序中使用的重要目錄。

常見的Laravel應用程序中使用的目錄是:

  • App/: 這是我們的應用程序代碼所在的源文件夾。所有控制器,策略和模型都在此文件夾中。
  • Config/: 保存應用程序的配置文件。這些通常不會直接修改,而是取決于在應用程序根目錄下的 .env (環境)文件中設置的值。
  • Database/: 存放數據庫文件, 包括 遷移, 數據填充, 和測試工廠。
  • Public/: 可公開訪問的文件夾,其中包含已編譯資源,當然還有index.php文件。

9) 什么是 Controller?

控制器是Laravel所基于的“ MVC”(模型-視圖-控制器)體系結構中的“ C”。

** 10) 解釋Laravel中的反向路由。**

反向路由是一種基于符號或名稱生成URL的方法。它使您的Laravel應用程序變得靈活。

** 12) 解釋 Laravel 中 traits 的特征。**

Laravel traits 是包含在另一個類中的一組函數。 一個 trait 就像一個抽象類。您不能直接實例化它,但是可以在其他的類中使用它的方法。

** 13) 解釋 Laravel 中契約的概念。**

它們是 Laravel 框架的接口集合。 這些契約提供核心服務。 Laravel 中的契約包括相應的框架實現。

** 14) 如何注冊您的服務提供者?**

您可以在config/app.php 配置文件中注冊服務提供者,該配置文件包含一個數組,您可以在其中配置服務提供者的類名。

** 15) 如何定義Laravel的門面?**

所有的門面都定義在 IlluminateSupportFacades 命名空間當中。

** 16) 說明get與post之間的區別 **

Get方法允許在請求頭部(header) 中發送有限數量的數據。Post允許在正文中發送大量數據。

** 17) 列出Laravel 5.6中的軟件包 **

Laravel 5.6 中的默認軟件包為:
1) Envoy, 2) Passport, 3) Socialite, 4) Cashier, 5) Horizon, 6) Scout.

** 18) Laravel 中的服務容器是什么 **

服務容器是用于在Laravel中執行依賴注入的工具。

** 19) 如何在Laravel中開啟查詢日志?**

您可以使用enableQueryLog方法在Laravel中啟用查詢日志。

** 20) 解釋Laravel中事件的概念。**

事件是一種動作或者操作,可以幫助您訂閱和偵聽Laravel應用程序中發生的事件。當發生任何活動時,Laravel會自動出發某些事件。

21) 說一下依賴注入和依賴注入的類型.

它是‘其中一種對象依賴于另一個對象’的技術。
依賴注入有三種類型:

  • 1) 構造函數注入
  • 2) setter注入
  • 3)接口注入.

22) 使用laravel有什么優勢嗎?

下面是laravel的主要優點:

  • Laravel具有blade模板引擎,可創建動態布局并增加編譯任務.
  • 可以很簡單的復用代碼.
  • 您不需要手動維護和包含路徑,因為Laravel具有自動加載功能.
  • 該框架可幫助您使用LOC容器制作新工具.
  • Laravel提供了一個版本控制系統,可幫助簡化遷移管理.

23) 說明Laravel中驗證的概念.

在設計任何Laravel應用程序時,驗證是一個重要的概念。它可以確保在將數據存儲到數據庫之前,數據始終采用預期的格式。 Laravel提供了多種驗證數據的方法。
基礎控制器特征是使用ValidatesRequests類,該類提供了一種有用的方法來驗證來自客戶端計算機的請求。

24)ORM代表什么?

ORM代表對象關系映射

25) 如何減少Laravel中的內存使用?

在處理大量數據時,可以使用cursor方法以減少內存使用量

26) 列出Laravel Eloquent中可用的關系類型。

Laravel Eloquent中可用的關系類型有:

  • 1)一對一
  • 2)一對多
  • 3)多對多
  • 4) 多對多關聯hasManyThrough
  • 5) 多態關系

27)定義一下 Laravel使用的模板引擎.

Blade是Laravel使用的功能強大的模板引擎。

28) 列出Laravel支持的數據庫.

Laravel支持以下數據庫:

  • PostgreSQL
  • SQL Server
  • SQLite
  • MySQL

29) 為什么遷移很重要?

遷移非常重要是因為它允許您通過維護數據庫一致性來共享應用程序。
如果不進行遷移,則很難共享任何Laravel應用程序。
它還允許您同步數據庫。

30) 定義 Lumen

Lumen 是一個微型框架. 它是基于 Laravel 服務和 REST API 的更小,更快的版本。

31) 解釋 PHP artisan

artisan 是 Laravel 的命令行工具。 它提供的命令可幫助您輕松構建Laravel應用程序。

32) 如何生成鏈接?

Laravel 用 helpers 函數 來生成鏈接。 當您在模板和API響應中建立鏈接時,這將很有幫助。

33) 哪個類用于處理異常?

Laravel異常由App.exceptions.handler類處理。

34) 什么是常見的HTTP錯誤代碼?

最常見的HTTP錯誤代碼是:

-錯誤404 –未找到頁面時顯示。
-錯誤-401 –未授權錯誤時顯示

35) 在Laravel中解釋 Fluent 查詢生成器。

它是一個數據庫查詢生成器,它提供了方便,快捷的界面來創建和運行數據庫查詢。

36) dd()函數的用途是什么?

此函數用于將變量的內容打印到瀏覽器。 dd的完整格式是Dump and Die。

37) 列出Laravel中使用的常見 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 中 如何配置郵件發送?

Laravel提供了一些API,可以在本地和實時服務器上發送電子郵件。

39) 解釋授權

這是一種使用密碼標識用戶登錄憑據的方法。在Laravel中,可以使用帶有兩個參數1)用戶名和2)密碼的會話來管理它。

40) delete():從數據庫表中刪除所有記錄

-delete():從數據庫表中刪除所有記錄。
-softDeletes():不會從表中刪除數據。它用于將任何記錄標記為已刪除。

41) 如何在Laravel中制作實時的sitemap.xml文件?

您可以創建網站的所有網頁,以告知搜索引擎有關組織網站內容的信息。搜索引擎的搜尋器會智能地讀取此文件以對網站進行搜尋。

42) 解釋說明Laravel中的faker.

它是用于創建偽造數據的一種模塊或軟件包。此數據可用于測試目的

它也可以用于生成:

  • 1)數字
  • 2)地址
  • 3)DateTime
  • 4)付款
  • 5)Lorem文本。

43) 您將如何檢查表是否在數據庫中存在?

使用Laravel中的hasTable()函數檢查所需的表是否在數據庫中存在。

44) Laravel中insert()和insertGetId()函數之間的顯著區別是什么?

  • Insert(): 此函數僅用于將記錄插入數據庫。 不返回自增ID
  • InsertGetId(): 此函數會在表中插入一條記錄,但當ID字段自動遞增時使用。(插入記錄并返回自增的ID)

45) 解釋說明 Laravel中的活動記錄-active record

在活動記錄中,類映射到您的數據庫表。它可以幫助您處理CRUD操作。

46) 列出Laravel中的基礎概念

以下是laravel中用到的基礎概念:

  • 路由
  • Eloquent ORM
  • 中間件
  • 安全
  • 緩存
  • Blade 模板

47) 定義隱式控制器。

隱式控制器可幫助您定義適當的路由來處理控制器操作。您可以使用Route :: controller()方法在route.php文件中定義它們。

48) 如何在Laravel模型中自定義表名?

自定義表名,您可以重寫protected變量$ table的值。

49) 什么是MVC框架?

它是模型,視圖和控制器:

  • Model: 模型定義編寫Laravel應用程序的邏輯。
  • View: 它涵蓋了Laravel應用程序的UI邏輯。
  • Controller:它是模型和視圖之間的接口。這是用戶與應用程序交互的一種方式。

50) 定義 @include.

@include用于加載多個模板視圖文件。它可以幫助您將視圖包括在另一個視圖中。用戶還可以在一個視圖中加載多個文件。

51) 解釋一下 cookies 的概念.

Cookies是從特定網站發送的小文件,并且在用戶瀏覽時由用戶的瀏覽器存儲在PC上。

52) 哪個文件用于與數據庫建立連接?

要創建與數據庫的連接,可以使用.env文件。

53) 什么是 Eloquent?

Eloquent 是 在laravel中使用的 ORM 。它提供了簡單的 active record 實現, 配合數據庫使用. ?每個數據庫表都有其模型,該模型用于與表進行交互。

54)列出Laravel的一些內置身份驗證控制器。

Laravel安裝具有一組內置的通用身份驗證控制器。這些控制器是:

  • RegisterController
  • LoginController
  • ResetPasswordController
  • ForgetPasswordController

55) 解釋 Laravel guard(衛兵) 。

Laravel Guard是一個用于查找經過身份驗證用戶的特殊組件。
最初將請求的傳入路由通過此防護來驗證用戶輸入的憑據。防護措施在../config/auth.php文件中定義。

56) 什么是Laravel API限流?

這是Laravel的功能。它提供了限流處理功能。限流可幫助Laravel開發人員開發安全的應用程序并防止DOS攻擊。

57) 解釋依稀laravel中的集合Collections.

集合Collections是用于數組的包裝器類。 Laravel Eloquent 的查詢使用一組最常用的函數來返回數據庫結果。

58) DB Facade的用途是什么?

DB Facade用于運行SQL查詢,例如創建,查詢,更新,插入和刪除。

59) 對象關系映射的用途是什么?

對象關系映射是一種技術,可幫助開發人員在不考慮對象及其數據源之間的關系的情況下尋址,訪問和操縱對象。

60) 解釋Laravel中的路由概念。
它允許將您所有的應用程序請求路由到控制器。 Laravel路由確認并接受帶閉包的統一資源標識符。

61) Laravel中的Ajax是什么?

Ajax代表異步JavaScript,XML是一種Web開發技術,用于創建異步Web應用程序。在Laravel中,response()和json()函數用于創建異步Web應用程序。

62)Laravel中的session是什么?

session用于將用戶信息從一個網頁傳遞到另一網頁。 Laravel提供了各種驅動程序(例如cookie,數組,文件,Memcached和Redis)來處理會話數據。

63)如何訪問session會話數據?

通過在HTTP請求中創建會話的實例,可以訪問會話數據。獲取實例后,將get()方法與“ Key”作為參數一起使用以獲取會話詳細信息。

64) 說明身份驗證和授權之間的區別。

認證是指通過憑據確認用戶身份,而授權是指收集對系統的訪問權限。

65) 解釋監聽器-listeners.
監聽器-listeners用于處理事件和異常。 Laravel中用于登錄事件的最常見的監聽器是LoginListener。

66) 什么策略類?

策略類包括Laravel應用程序的授權邏輯。這些類用于特定的模型或資源。

67) 如何回滾上一次migration遷移?

需要使用artisan命令回滾上一次遷移。

68) 您所說的Laravel Dusk是什么意思?

Laravel Dusk是用于測試啟用JavaScript的應用程序的工具。它提供了強大的瀏覽器自動化和測試API。

69) 解釋Laravel echo.

它是一個JavaScript庫,可以訂閱和收聽通道Laravel事件。您可以使用NPM軟件包管理器來安裝echo。

70)什么是 make 方法?

Laravel開發人員可以使用make方法來綁定接口以創建類。此方法返回類或接口的實例。 Laravel自動注入在類構造函數中定義的依賴項。

71) 解釋一下Laravel中的 Response。

所有控制器和路由都應返回響應,然后將其發送回Web瀏覽器。 Laravel提供了多種方法來返回此響應。最基本的響應是從控制器或路由返回一個字符串。

72) )什么是查詢范圍?

Laravel的一個功能是我們可以重復使用類似的查詢。我們不需要在Laravel項目中再次編寫相同類型的查詢。定義范圍后,只需在查詢模型時調用scope方法即可。

73) 解釋一下 Laravel 中的 homestead 。

Laravel homestead 是官方的,一次性的, 預包裝的 vagrant box ,它具有強大的開發環境, 而且無需在計算機上安裝HHVM,Web服務器和PHP。

74) Laravel中的命名空間是什么?

命名空間允許用戶使用特定名稱將函數,類和常量分組。

76) 說明CodeIgniter和Laravel之間的區別。

Parameter CodeIgniter Laravel
支持ORM 不支持對象關系映射. 支持 ORM.
提供身份驗證 確實提供了用戶身份驗證. 具有內置的用戶身份驗證.
編程范例 面向組件. 面向對象.
對其他數據庫的支持 支持Microsoft SQL Server, ORACLE, MYSQL, IBM DB2, PostgreSQL, JDBC和orientDB兼容. 它支持PostgreSQL,MySQL,MongoDB和Microsoft BI,但CodeIgniter還支持其他數據庫,例如Microsoft SQL Server,DB2,Oracle等。
HTTPS支持 CodeIgniter部分支持HTTPS。因此,程序員可以使用URL通過創建PATS來保護數據傳輸過程。 Laravel支持自定義HTTPS路由。程序員可以為他們定義的HTTPS路由創建特定的URL。

77) 什么是觀察員 Observers?

Model Observers 是Laravel的功能。它用于為模型建立事件監聽器的群集。這些類的方法名稱描述了Eloquent事件。Observers 類方法將模型作為參數接收。

78) bootstrap 目錄的用途是什么?

它用于初始化Laravel項目。這個引導目錄包含負責引導框架的app.php文件。

79) 默認的會話超時時間是多少?

Laravel會話的默認超時時間為2小時。

80) 如何刪除已編譯的類文件?

使用clear-compiled命令刪除已編譯的類文件。

81) robot.txt放在哪個文件夾中?

Robot.txt文件放置在“Public”目錄中。

82) 解釋API.PHP路由。

其路由對應于API集群。它具有在Laravel中默認啟用的API中間件。這些路由沒有任何狀態和交叉請求內存,也沒有session會話。

83) 什么是定義路由?

定義路由是一種生成路由路徑的方法。 這些路由的鏈接可以通過在定義路由方法中進行說明

84)什么是開源軟件?

開源軟件是可以免費獲得源代碼的軟件。源代碼可以根據用戶要求進行共享和修改。

85) 解釋 Laravel中的 Loggin ?。

它是一種生成系統錯誤日志的技術。 Loggin有助于提高系統的可靠性。 Laravel支持各種日志記錄模式,例如syslog,每日,單次和錯誤日志記錄模式。

86) 什么是本地化?

Laravel的一個功能是支持應用程序中使用的各種語言。開發人員可以在文件中存儲不同語言的字符串,這些文件存儲在resources / views文件夾中。開發人員應為每種支持的語言創建一個單獨的文件夾。

87) 定義 Laravel 中的 hashing .

這是將文本轉換為顯示原始文本的key的方法。 Laravel使用Hash facade以哈希方式安全地存儲密碼。

88)解釋Laravel中加密和解密的概念.

加密是使用某些算法以第三用戶無法讀取信息的方式轉換任何信息的過程。加密可以保護您的敏感信息不受入侵。

使用加密過程執行加密。要加密的消息稱為純消息。加密后獲得的消息稱為密碼消息。將密文轉換為純文本或消息時,此過程稱為解密。

89) 如何與視圖共享數據?

要將數據傳遞給Laravel中的所有視圖,請使用稱為share()的方法。此方法采用兩個參數,即key和value。
通常,從Laravel應用程序service provider的boot方法調用share()方法。開發人員可以使用任何service provider,AppServiceProvider或我們自己的service provider。

90) 解釋 web.php 路由.

Web.php 是基于公眾的“瀏覽器”路由。 這是最常見的途徑,也是網絡瀏覽器會遇到的問題。 它們遍歷Web中間件組,還包含CSRF保護工具(有助于防御基于表單的惡意攻擊和黑客攻擊),并且通常包含一定程度的“狀態” (我的意思是他們利用session會話).

91) 如何在Laravel中生成請求?

在Laravel中使用以下artisan命令生成請求:

php?artisan?make:request?UploadFileRequest

原文地址:https://www.guru99.com/laravel-interview-questions.html譯文地址:https://learnku.com/laravel/t/38446

【相關推薦:laravel視頻教程

? 版權聲明
THE END
喜歡就支持一下吧
點贊5 分享