《PHP應(yīng)用:初識(shí)laravel5》要點(diǎn):
本文介紹了PHP應(yīng)用:初識(shí)laravel5,希望對(duì)您有用。如果有疑問(wèn),可以聯(lián)系我們。
目錄布局變化PHP編程
laravel5最先強(qiáng)調(diào)的是項(xiàng)目目錄布局的變化,與4.2區(qū)別還是蠻大的,逐條來(lái)說(shuō)吧.PHP編程
新的目錄布局看上去像這樣:PHP編程
app
??? Commands
??? Console
??? Events
??? Handlers
??????? Commands
??????? Events
??? Http
??????? Controllers
??????? Middleware
??????? Requests
??????? Kernel.php
??????? routes.php
??? Providers
??? Services
bootstrap
config
database
??? migrations
??? seeds
public
??? package
resources
??? lang
??? views
storage
??? cache
??? logs
??? meta
??? sessions
??? views
??? work
testsPHP編程
4.2的目錄布局:PHP編程
app
??? commands
??? config
??? controllers
??? database
??? lang
??? models
??? start
??? storage
??? tests
??? views
bootstrap
public
對(duì)比一下,改變還是比擬大的,可以看到 config,database被移動(dòng)到根目錄,lang,views目錄被移動(dòng)到resources目錄下,controllers被整合到http目錄里,models目錄不見(jiàn)了,還有一些新增的目錄就略了.PHP編程
App命名空間PHP編程
laravel5里還有一個(gè)變化,那便是app目錄默認(rèn)加上了一個(gè)根命名空間 App ,在 App 下的所有目錄、類都應(yīng)當(dāng)在該命名空間下,簡(jiǎn)而言之便是采用了psr4標(biāo)準(zhǔn).PHP編程
HTTPPHP編程
laravel5認(rèn)為,新的目錄結(jié)構(gòu)是目前最好的結(jié)構(gòu)之一,可以讓我們的開(kāi)發(fā)更加得心應(yīng)手,好比http目錄:PHP編程
Http
??? Controllers
??? Middleware
??? Requests
??? Kernel.php
??? routes.php
Middleware 很陌生,其實(shí)它是原來(lái)的路由filter的一個(gè)升級(jí)版,現(xiàn)在不用在filters.php里定義過(guò)濾器,取而代之的是在 Middleware 目錄中創(chuàng)建類,并在Kernel.php中配置全局還是可選,全局的Middleware在每個(gè)哀求都會(huì)執(zhí)行,而可選的就相當(dāng)于原來(lái)的filter,可以在路由中使用,也可以在控制器中使用.PHP編程
Requests是對(duì)核心類Request的擴(kuò)展,你可以擴(kuò)展分歧的Requests類,添加分歧的功能.PHP編程
可以認(rèn)為,所有關(guān)于http哀求有關(guān)的處理都在http目錄中,比如控制器就是用來(lái)接受一個(gè)哀求并返回的,所以將它放在 Http 目錄里合情合理.PHP編程
路由PHP編程
路由跟以前的區(qū)別不大,但是必要注意的當(dāng)我們指定控制器命名空間時(shí),命名空間不是絕對(duì)路徑,而是相對(duì)于 App\Http\Controllers,舉例:PHP編程
可以在 App/Http/Controllers/Auth 目錄下找到對(duì)應(yīng)的類.PHP編程
此外,路由還支持緩存,以提升性能,通過(guò)命令行工具PHP編程
即可輕松生成,也可以通過(guò)PHP編程
清理緩存.PHP編程
ServicesPHP編程
我們看到在App目錄下還有一個(gè)Services目錄,我覺(jué)得這是一個(gè)很贊的理念,一直以來(lái),我都對(duì)于控制器中出現(xiàn)大段的業(yè)務(wù)邏輯代碼而煩躁,我很想用一個(gè)單獨(dú)的層把這些業(yè)務(wù)邏輯封裝起來(lái),而services就可以用來(lái)干這個(gè)活,當(dāng)然,它不是必需的,但我強(qiáng)烈建議使用.就以laravel5自帶的demo來(lái)看看吧:PHP編程
這是一個(gè)登陸授權(quán)的控制器,我們看 __construct構(gòu)造函數(shù),利用參數(shù)自動(dòng)注入了一個(gè) "接口實(shí)現(xiàn)(參考手冊(cè)IoC)" 的綁定,我們看下Registrar:PHP編程
提交用戶名暗碼時(shí)的處理:PHP編程
可以看到,表單驗(yàn)證的業(yè)務(wù)邏輯僅僅一行:PHP編程
整個(gè)控制器的代碼顯得干凈易讀,我們可以把很多通用的業(yè)務(wù)邏輯封裝成service,比不正經(jīng)地直接封裝在控制器類好.PHP編程
模型PHP編程
models目錄不見(jiàn)了,因?yàn)椴皇撬袘?yīng)用都需要用到數(shù)據(jù)庫(kù)的,所以laravel5默認(rèn)不提供該目錄可以理解,而且由于提供了 App 這個(gè)namespace,所以我們可以本身在 App/ 下創(chuàng)建 Models 目錄,其中所有模型類都聲名namespace App\Models;即可,只是使用上比以前麻煩一些,需要先use,不過(guò)這樣也使得項(xiàng)目結(jié)構(gòu)更加清晰,一切類庫(kù)都在命名空間的組織之下.PHP編程
時(shí)間有限,先寫(xiě)這么多吧.希望年夜家能夠喜歡.PHP編程
《PHP應(yīng)用:初識(shí)laravel5》是否對(duì)您有啟發(fā),歡迎查看更多與《PHP應(yīng)用:初識(shí)laravel5》相關(guān)教程,學(xué)精學(xué)透。維易PHP學(xué)院為您提供精彩教程。
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/12171.html