本篇文章給大家?guī)砹岁P(guān)于laravel的相關(guān)知識,其中主要總結(jié)了最常見的laravel面試器,以便菜鳥以及有經(jīng)驗的應(yīng)聘者找到合適的工作,希望對大家有幫助。
【相關(guān)推薦:laravel】
以下是經(jīng)常問到的 laravel 和 PHP 相關(guān)的面試問題,以便菜鳥以及有經(jīng)驗的應(yīng)聘者找到合適的工作。
祝福看到的您早日找到理想工作!!
學(xué)習(xí)是人類進(jìn)步的階梯!!!
1) 什么是 Laravel ?
Laravel 是一個開源的、廣泛使用的 PHP 框架。該平臺主要用于利用 MVC 架構(gòu)模式開發(fā) web 應(yīng)用程序。Laravel 是在 MIT 許可下發(fā)布的。
因此,其源代碼托管在 GitHub 上。它遵循可靠且準(zhǔn)確的語言規(guī)則,因此是可靠的 PHP 框架。
2) 定義 Composer.
它是 PHP 的應(yīng)用程序級程序包管理器。它提供了用于管理 PHP 軟件依賴項和庫的標(biāo)準(zhǔn)格式。
3) 什么是 HTTP 中間件?
HTTP 中間件是一種用于過濾 HTTP 請求的技術(shù)。 Laravel 包含一個中間件,用于檢查應(yīng)用程序用戶是否已通過身份驗證。
4) 聚合查詢生成器的方法名稱
查詢構(gòu)建器的聚合方法是:1) max (),2) min (),3) sum (),4) avg () 和 5) count ()。
5) 什么是 Route ?
路由基本上是由 URI (統(tǒng)一資源標(biāo)識符) 指定的端點。它在 Laravel 應(yīng)用程序中充當(dāng)指針。
最常見的是,路由指向控制器上的方法,還指出哪些 HTTP 方法可以訪問該 URI。
6) 為什么使用 Route?
路由存儲在項目根目錄下 /routes 文件夾下的文件內(nèi)。默認(rèn)情況下,有幾個不同的文件對應(yīng)于應(yīng)用程序的不同 “面”(“面” 來自六角形體系結(jié)構(gòu)方法)。
8) 解釋通用 Laravel 應(yīng)用程序中使用的重要目錄。
常見的 Laravel 應(yīng)用程序中使用的目錄是:
- App/: 這是我們的應(yīng)用程序代碼所在的源文件夾。所有控制器,策略和模型都在此文件夾中。
- Config/: 保存應(yīng)用程序的配置文件。這些通常不會直接修改,而是取決于在應(yīng)用程序根目錄下的 .env (環(huán)境) 文件中設(shè)置的值。
- Database/: 存放數(shù)據(jù)庫文件,包括 遷移,數(shù)據(jù)填充,和測試工廠。
- Public/: 可公開訪問的文件夾,其中包含已編譯資源,當(dāng)然還有 index.php 文件。
9) 什么是 Controller?
控制器是 Laravel 所基于的 “MVC”(模型 – 視圖 – 控制器) 體系結(jié)構(gòu)中的 “ C”。
10) 解釋 Laravel 中的反向路由。
反向路由是一種基于符號或名稱生成 URL 的方法。它使您的 Laravel 應(yīng)用程序變得靈活。
12) 解釋 Laravel 中 traits 的特征。
Laravel traits 是包含在另一個類中的一組函數(shù)。 一個 trait 就像一個抽象類。您不能直接實例化它,但是可以在其他的類中試用它的方法。
13) 解釋 Laravel 中契約的概念。
它們是 Laravel 框架的接口集合。 這些契約提供核心服務(wù)。 Laravel 中的契約包括相應(yīng)的框架實現(xiàn)。
14) 如何注冊您的服務(wù)提供者?
您可以在 config/app.php 配置文件中注冊服務(wù)提供者,該配置文件包含一個數(shù)組,您可以在其中配置服務(wù)提供者的類名。
15) 如何定義 Laravel 的門面?
所有的門面都定義在 IlluminateSupportFacades 命名空間當(dāng)中。
16) 說明 get 與 post 之間的區(qū)別
Get 方法允許在請求頭部 (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í)行依賴注入的工具。
19) 如何在 Laravel 中開啟查詢?nèi)罩荆?/strong>
您可以使用 enableQueryLog 方法在 Laravel 中啟用查詢?nèi)罩尽?/p>
20) 解釋 Laravel 中事件的概念。
事件是一種動作或者操作,可以幫助您訂閱和偵聽 Laravel 應(yīng)用程序中發(fā)生的事件。當(dāng)發(fā)生任何活動時,Laravel 會自動出發(fā)某些事件。
21) 說一下依賴注入和依賴注入的類型.
它是‘其中一種對象依賴于另一個對象’的技術(shù)。
依賴注入有三種類型:
- 構(gòu)造函數(shù)注入
- setter 注入
- 接口注入.
22) 使用 laravel 有什么優(yōu)勢嗎?
下面是 laravel 的主要優(yōu)點:
- Laravel 具有 blade 模板引擎,可創(chuàng)建動態(tài)布局并增加編譯任務(wù).
- 可以很簡單的復(fù)用代碼.
- 您不需要手動維護(hù)和包含路徑,因為 Laravel 具有自動加載功能.
- 該框架可幫助您使用 LOC 容器制作新工具.
- Laravel 提供了一個版本控制系統(tǒng),可幫助簡化遷移管理.
23) 說明 Laravel 中驗證的概念.
在設(shè)計任何 Laravel 應(yīng)用程序時,驗證是一個重要的概念。它可以確保在將數(shù)據(jù)存儲到數(shù)據(jù)庫之前,數(shù)據(jù)始終采用預(yù)期的格式。 Laravel 提供了多種驗證數(shù)據(jù)的方法。
基礎(chǔ)控制器特征是使用 ValidatesRequests 類,該類提供了一種有用的方法來驗證來自客戶端計算機(jī)的請求。
24) ORM 代表什么?
ORM 代表對象關(guān)系映射
25) 如何減少 Laravel 中的內(nèi)存使用?
在處理大量數(shù)據(jù)時,可以使用 cursor 方法以減少內(nèi)存使用量
26) 列出 Laravel Eloquent 中可用的關(guān)系類型。
Laravel Eloquent 中可用的關(guān)系類型有:
- 一對一
- 一對多
- 多對多
- 多對多關(guān)聯(lián) hasManyThrough
- 多態(tài)關(guān)系
27) 定義一下 Laravel 使用的模板引擎.
Blade 是 Laravel 使用的功能強大的模板引擎。
28) 列出 Laravel 支持的數(shù)據(jù)庫.
Laravel 支持以下數(shù)據(jù)庫:
- PostgreSQL
- SQL Server
- SQLite
- MySQL
29) 為什么遷移很重要?
遷移非常重要是因為它允許您通過維護(hù)數(shù)據(jù)庫一致性來共享應(yīng)用程序。
如果不進(jìn)行遷移,則很難共享任何 Laravel 應(yīng)用程序。
它還允許您同步數(shù)據(jù)庫。
30) 定義 Lumen
Lumen 是一個微型框架。它是基于 Laravel 服務(wù)和 REST API 的更小,更快的版本。
31) 解釋 PHP artisan
artisan 是 Laravel 的命令行工具。 它提供的命令可幫助您輕松構(gòu)建 Laravel 應(yīng)用程序。
32) 如何生成鏈接?
Laravel 用 helpers 函數(shù) 來生成鏈接。 當(dāng)您在模板和 API 響應(yīng)中建立鏈接時,這將很有幫助。
33) 哪個類用于處理異常?
Laravel 異常由 App.exceptions.handler 類處理。
34) 什么是常見的 HTTP 錯誤代碼?
最常見的 HTTP 錯誤代碼是:
– 錯誤 404 –未找到頁面時顯示。
– 錯誤 – 401 –未授權(quán)錯誤時顯示
35) 在 Laravel 中解釋 Fluent 查詢生成器。
它是一個數(shù)據(jù)庫查詢生成器,它提供了方便,快捷的界面來創(chuàng)建和運行數(shù)據(jù)庫查詢。
36) dd () 函數(shù)的用途是什么?
此函數(shù)用于將變量的內(nèi)容打印到瀏覽器。 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 中 如何配置郵件發(fā)送?
Laravel 提供了一些 API,可以在本地和實時服務(wù)器上發(fā)送電子郵件。
39) 解釋授權(quán)
這是一種使用密碼標(biāo)識用戶登錄憑據(jù)的方法。在 Laravel 中,可以使用帶有兩個參數(shù) 1) 用戶名和 2) 密碼的會話來管理它。
40) delete ():從數(shù)據(jù)庫表中刪除所有記錄
-delete ():從數(shù)據(jù)庫表中刪除所有記錄。
-softDeletes ():不會從表中刪除數(shù)據(jù)。它用于將任何記錄標(biāo)記為已刪除。
41) 如何在 Laravel 中制作實時的 sitemap.xml 文件?
您可以創(chuàng)建網(wǎng)站的所有網(wǎng)頁,以告知搜索引擎有關(guān)組織網(wǎng)站內(nèi)容的信息。搜索引擎的搜尋器會智能地讀取此文件以對網(wǎng)站進(jìn)行搜尋。
42) 解釋說明 Laravel 中的 faker.
它是用于創(chuàng)建偽造數(shù)據(jù)的一種模塊或軟件包。此數(shù)據(jù)可用于測試目的
它也可以用于生成:
-
數(shù)字
-
地址
-
DateTime
-
付款
-
Lorem 文本。
-
您將如何檢查表是否在數(shù)據(jù)庫中存在?
使用 Laravel 中的 hasTable () 函數(shù)檢查所需的表是否在數(shù)據(jù)庫中存在。
44) Laravel 中 insert () 和 insertGetId () 函數(shù)之間的顯著區(qū)別是什么?
Insert (): 此函數(shù)僅用于將記錄插入數(shù)據(jù)庫。 不返回自增 ID
InsertGetId (): 此函數(shù)會在表中插入一條記錄,但當(dāng) ID 字段自動遞增時使用。(插入記錄并返回自增的 ID)
45) 解釋說明 Laravel 中的活動記錄 – active record
在活動記錄中,類映射到您的數(shù)據(jù)庫表。它可以幫助您處理 CRUD 操作。
46) 列出 Laravel 中的基礎(chǔ)概念
以下是 laravel 中用到的基礎(chǔ)概念:
- 路由
- Eloquent ORM
- 中間件
- 安全
- 緩存
- Blade 模板
47) 定義隱式控制器。
隱式控制器可幫助您定義適當(dāng)?shù)穆酚蓙硖幚砜刂破鞑僮鳌D梢允褂?Route :: controller () 方法在 route.php 文件中定義它們。
48) 如何在 Laravel 模型中自定義表名?
自定義表名,您可以重寫 protected 變量 $ table 的值。
49) 什么是 MVC 框架?
它是模型,視圖和控制器:
Model: 模型定義編寫 Laravel 應(yīng)用程序的邏輯。
View: 它涵蓋了 Laravel 應(yīng)用程序的 UI 邏輯。
Controller: 它是模型和視圖之間的接口。這是用戶與應(yīng)用程序交互的一種方式。
50) 定義 @include.
@include 用于加載多個模板視圖文件。它可以幫助您將視圖包括在另一個視圖中。用戶還可以在一個視圖中加載多個文件。
51) 解釋一下 cookies 的概念.
Cookies 是從特定網(wǎng)站發(fā)送的小文件,并且在用戶瀏覽時由用戶的瀏覽器存儲在 PC 上。
52) 哪個文件用于與數(shù)據(jù)庫建立連接?
要創(chuàng)建與數(shù)據(jù)庫的連接,可以使用.env 文件。
53) 什么是 Eloquent?
Eloquent 是 在 laravel 中使用的 ORM 。它提供了簡單的 active record 實現(xiàn), 配合數(shù)據(jù)庫使用。每個數(shù)據(jù)庫表都有其模型,該模型用于與表進(jìn)行交互。
54) 列出 Laravel 的一些內(nèi)置身份驗證控制器。
Laravel 安裝具有一組內(nèi)置的通用身份驗證控制器。這些控制器是:
RegisterController
LoginController
ResetPasswordController
ForgetPasswordController
55) 解釋 Laravel guard (衛(wèi)兵) 。
Laravel Guard 是一個用于查找經(jīng)過身份驗證用戶的特殊組件。
最初將請求的傳入路由通過此防護(hù)來驗證用戶輸入的憑據(jù)。防護(hù)措施在../config/auth.php 文件中定義。
56) 什么是 Laravel API 限流?
這是 Laravel 的功能。它提供了限流處理功能。限流可幫助 Laravel 開發(fā)人員開發(fā)安全的應(yīng)用程序并防止 DOS 攻擊。
57) 解釋依稀 laravel 中的集合 Collections.
集合 Collections 是用于數(shù)組的包裝器類。 Laravel Eloquent 的查詢使用一組最常用的函數(shù)來返回數(shù)據(jù)庫結(jié)果。
58) DB Facade 的用途是什么?
DB Facade 用于運行 SQL 查詢,例如創(chuàng)建,查詢,更新,插入和刪除。
59) 對象關(guān)系映射的用途是什么?
對象關(guān)系映射是一種技術(shù),可幫助開發(fā)人員在不考慮對象及其數(shù)據(jù)源之間的關(guān)系的情況下尋址,訪問和操縱對象。
60) 解釋 Laravel 中的路由概念。
它允許將您所有的應(yīng)用程序請求路由到控制器。 Laravel 路由確認(rèn)并接受帶閉包的統(tǒng)一資源標(biāo)識符。
61) Laravel 中的 Ajax 是什么?
Ajax 代表異步 JavaScript,XML 是一種 Web 開發(fā)技術(shù),用于創(chuàng)建異步 Web 應(yīng)用程序。在 Laravel 中,response () 和 json () 函數(shù)用于創(chuàng)建異步 Web 應(yīng)用程序。
62) Laravel 中的 session 是什么?
session 用于將用戶信息從一個網(wǎng)頁傳遞到另一網(wǎng)頁。 Laravel 提供了各種驅(qū)動程序 (例如 cookie,數(shù)組,文件,Memcached 和 Redis) 來處理會話數(shù)據(jù)。
63) 如何訪問 session 會話數(shù)據(jù)?
通過在 HTTP 請求中創(chuàng)建會話的實例,可以訪問會話數(shù)據(jù)。獲取實例后,將 get () 方法與 “ Key” 作為參數(shù)一起使用以獲取會話詳細(xì)信息。
64) 說明身份驗證和授權(quán)之間的區(qū)別。
認(rèn)證是指通過憑據(jù)確認(rèn)用戶身份,而授權(quán)是指收集對系統(tǒng)的訪問權(quán)限。
65) 解釋監(jiān)聽器 – listeners.
監(jiān)聽器 – listeners 用于處理事件和異常。 Laravel 中用于登錄事件的最常見的監(jiān)聽器是 LoginListener。
66) 什么策略類?
策略類包括 Laravel 應(yīng)用程序的授權(quán)邏輯。這些類用于特定的模型或資源。
67) 如何回滾上一次 migration 遷移?
需要使用 artisan 命令回滾上一次遷移。
68) 您所說的 Laravel Dusk 是什么意思?
Laravel Dusk 是用于測試啟用 JavaScript 的應(yīng)用程序的工具。它提供了強大的瀏覽器自動化和測試 API。
69) 解釋 Laravel echo.
它是一個 JavaScript 庫,可以訂閱和收聽通道 Laravel 事件。您可以使用 NPM 軟件包管理器來安裝 echo。
70) 什么是 make 方法?
Laravel 開發(fā)人員可以使用 make 方法來綁定接口以創(chuàng)建類。此方法返回類或接口的實例。 Laravel 自動注入在類構(gòu)造函數(shù)中定義的依賴項。
71) 解釋一下 Laravel 中的 Response。
所有控制器和路由都應(yīng)返回響應(yīng),然后將其發(fā)送回 Web 瀏覽器。 Laravel 提供了多種方法來返回此響應(yīng)。最基本的響應(yīng)是從控制器或路由返回一個字符串。
72) ) 什么是查詢范圍?
Laravel 的一個功能是我們可以重復(fù)使用類似的查詢。我們不需要在 Laravel 項目中再次編寫相同類型的查詢。定義范圍后,只需在查詢模型時調(diào)用 scope 方法即可。
73) 解釋一下 Laravel 中的 homestead 。
Laravel homestead 是官方的,一次性的,預(yù)包裝的 vagrant box ,它具有強大的開發(fā)環(huán)境, 而且無需在計算機(jī)上安裝 HHVM,Web 服務(wù)器和 PHP。
74) Laravel 中的命名空間是什么?
命名空間允許用戶使用特定名稱將函數(shù),類和常量分組。
76) 說明 CodeIgniter 和 Laravel 之間的區(qū)別。
Parameter | CodeIgniter | ? ?Laravel |
支持 ORM | 不支持對象關(guān)系映射. | ?支持 ORM. |
提供身份驗證 | 確實提供了用戶身份驗證 | 具有內(nèi)置的用戶身份驗證 |
編程范例 | 面向組件 | 面向?qū)ο?/td> |
對其他數(shù)據(jù)庫的支持 | 支持 Microsoft SQL Server, ORACLE, MYSQL, IBM DB2, PostgreSQL, JDBC 和 orientDB 兼容 | 它支持 PostgreSQL,MySQL,MongoDB 和 Microsoft BI,但 CodeIgniter 還支持其他數(shù)據(jù)庫,例如 Microsoft SQL Server,DB2,Oracle 等 |
HTTPS 支持 | CodeIgniter 部分支持 HTTPS。因此,程序員可以使用 URL 通過創(chuàng)建 PATS 來保護(hù)數(shù)據(jù)傳輸過程 | Laravel 支持自定義 HTTPS 路由。程序員可以為他們定義的 HTTPS 路由創(chuàng)建特定的 URL。 |
77) 什么是觀察員 Observers?
Model Observers 是 Laravel 的功能。它用于為模型建立事件監(jiān)聽器的群集。這些類的方法名稱描述了 Eloquent 事件。Observers 類方法將模型作為參數(shù)接收。
78) bootstrap 目錄的用途是什么?
它用于初始化 Laravel 項目。這個引導(dǎo)目錄包含負(fù)責(zé)引導(dǎo)框架的 app.php 文件。
79) 默認(rèn)的會話超時時間是多少?
Laravel 會話的默認(rèn)超時時間為 2 小時。
80) 如何刪除已編譯的類文件?
使用 clear-compiled 命令刪除已編譯的類文件。
81) robot.txt 放在哪個文件夾中?
Robot.txt 文件放置在 “Public” 目錄中。
82) 解釋 API.PHP 路由。
其路由對應(yīng)于 API 集群。它具有在 Laravel 中默認(rèn)啟用的 API 中間件。這些路由沒有任何狀態(tài)和交叉請求內(nèi)存,也沒有 session 會話。
83) 什么是定義路由?
定義路由是一種生成路由路徑的方法。 這些路由的鏈接可以通過在定義路由方法中進(jìn)行說明
84) 什么是開源軟件?
開源軟件是可以免費獲得源代碼的軟件。源代碼可以根據(jù)用戶要求進(jìn)行共享和修改。
85) 解釋 Laravel 中的 Loggin 。
它是一種生成系統(tǒng)錯誤日志的技術(shù)。 Loggin 有助于提高系統(tǒng)的可靠性。 Laravel 支持各種日志記錄模式,例如 syslog,每日,單次和錯誤日志記錄模式。
86) 什么是本地化?
Laravel 的一個功能是支持應(yīng)用程序中使用的各種語言。開發(fā)人員可以在文件中存儲不同語言的字符串,這些文件存儲在 resources /views 文件夾中。開發(fā)人員應(yīng)為每種支持的語言創(chuàng)建一個單獨的文件夾。
87) 定義 Laravel 中的 hashing .
這是將文本轉(zhuǎn)換為顯示原始文本的 key 的方法。 Laravel 使用 Hash facade 以哈希方式安全地存儲密碼。
88) 解釋 Laravel 中加密和解密的概念.
加密是使用某些算法以第三用戶無法讀取信息的方式轉(zhuǎn)換任何信息的過程。加密可以保護(hù)您的敏感信息不受入侵。
使用加密過程執(zhí)行加密。要加密的消息稱為純消息。加密后獲得的消息稱為密碼消息。將密文轉(zhuǎn)換為純文本或消息時,此過程稱為解密。
89) 如何與視圖共享數(shù)據(jù)?
要將數(shù)據(jù)傳遞給 Laravel 中的所有視圖,請使用稱為 share () 的方法。此方法采用兩個參數(shù),即 key 和 value。
通常,從 Laravel 應(yīng)用程序 service provider 的 boot 方法調(diào)用 share () 方法。開發(fā)人員可以使用任何 service provider,AppServiceProvider 或我們自己的 service provider。
90) 解釋 web.php 路由.
Web.php 是基于公眾的 “瀏覽器” 路由。 這是最常見的途徑,也是網(wǎng)絡(luò)瀏覽器會遇到的問題。 它們遍歷 Web 中間件組,還包含 CSRF 保護(hù)工具 (有助于防御基于表單的惡意攻擊和黑客攻擊),并且通常包含一定程度的 “狀態(tài)” (我的意思是他們利用 session 會話).
91) 如何在 Laravel 中生成請求?
在 Laravel 中使用以下 artisan 命令生成請求:
php artisan make:request UploadFileRequest
【相關(guān)推薦:laravel】