日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

Laravel 5.0 發(fā)布 新版本特性詳解_PHP教程

編輯Tag賺U幣
教程Tag:暫無(wú)Tag,歡迎添加,賺取U幣!

推薦:Laravel模板引擎Blade中section的一些標(biāo)簽的區(qū)別介紹
這篇文章主要介紹了Laravel模板引擎Blade中section的一些標(biāo)簽的區(qū)別介紹,本文講解了@yield 與 @section、@show 與 @stop、@append 和 @override的區(qū)別,需要的朋友可以參考下 Laravel 框架中的 Blade 模板引擎,很好用,但是在官方文檔中有關(guān) Blade 的介紹并不詳細(xì),有

 這篇文章主要介紹了Laravel 5.0 發(fā)布 新版本特性詳解,本文講解了目錄結(jié)構(gòu)、Contracts、路由緩存、路由中間、控制器方法注入、認(rèn)證腳手架等新特性,需要的朋友可以參考下

   

譯注: 期待 Laravel 5.0 已經(jīng)很久很久了, 之前跳票說(shuō)要到今年一月份發(fā)布. 從一月份就一直在刷新官網(wǎng)和博客, 始終沒(méi)有更新的消息, 前幾天終于看到官網(wǎng)文檔切換到了 5.0 版. 新版本帶來(lái)了眾多令人激動(dòng)的新特性, 尤其是定時(shí)任務(wù)隊(duì)列和表單請(qǐng)求兩個(gè)特性, 光看一下更新說(shuō)明中的簡(jiǎn)單介紹都忍不住要上手嘗試了. 今天總算抽出一點(diǎn)時(shí)間把官方的新特性說(shuō)明文檔簡(jiǎn)單地翻譯了一下, 希望所有喜歡 Laravel 框架的朋友都能感受到這個(gè)版本帶來(lái)的激動(dòng)人心的改變. 當(dāng)然, 如果你需要的是 Phalcon 那樣的性能, 那它肯定不是你需要的. 如果你是因?yàn)樘摂M主機(jī)不支持 php 5.4 而不能享受 Laravel, 那你還不扔了你的虛擬主機(jī)??? 阿里云\騰訊云\linode... VPS的選擇不要太多...

Laravel 5.0

Laravel 5.0 引入了全新的項(xiàng)目目錄結(jié)構(gòu). 新的目錄結(jié)構(gòu)更有利于用 Laravel 來(lái)創(chuàng)建應(yīng)用. 5.0 版從頭到尾都采用了新的 PSR-4 自動(dòng)加載標(biāo)準(zhǔn). 以下是 5.0 版主要的新特性:

目錄結(jié)構(gòu)

以前版本中的 app/models 目錄被整個(gè)移除. 如今你可以直接把代碼放在 app 目錄下, 該目錄下的所有代碼默認(rèn)會(huì)被組織到 app 命名空間. 這個(gè)命名空間是可以通過(guò)新增加的 Artisan 命令 app:name 來(lái)修改的.

Controllers, middleware 和 requests (Laravel 5.0 新增加的一種類) 被組織到 app/Http 目錄, 因?yàn)樗麄兌际桥c你應(yīng)用的 HTTP 傳輸層相關(guān)的類. 與之前把所有路由過(guò)濾器放到單一的 filters 文件下不同, 現(xiàn)在所有的 middleware (類似之前的 route filter) 被分別存放到各自自己的類文件中.

新版本中增加了一個(gè) app/Providers 目錄來(lái)代替之前 4.x 版本的 app/start 文件. 這些 service providers 為應(yīng)用提供各種各樣的引導(dǎo)方法, 比如錯(cuò)誤處理, 日志記錄, 路由加載等. 除此之外你當(dāng)然也可以創(chuàng)建額外的 service providers.

應(yīng)用的語(yǔ)言文件和視圖被移到了 resources 目錄.

Contracts

Laravel 的所有主要組件都實(shí)現(xiàn)了存放在 illuminate/contracts 倉(cāng)庫(kù)中的接口. 該倉(cāng)庫(kù)沒(méi)有額外的依賴項(xiàng). 擁有這樣一個(gè)方便的, 集中存放的接口集合, 你就可以很容易地通過(guò)它來(lái)對(duì) Laravel Facades 進(jìn)行解耦和依賴注入方面的選擇和修改.

了解有關(guān) contracts 的更多信息, 可以查看它的完整文檔.
路由緩存

如果你的應(yīng)用由各種各樣的控制器路由 (controller routes) 組成, 你可以利用新增的 Artisan 命令 route:cache 大幅度提升路由的注冊(cè)速度. 這在路由數(shù)量超過(guò) 100 個(gè)的應(yīng)用中尤其有效, 可以 大幅度 提升整個(gè)應(yīng)用在路由部分的速度.

路由中間件 (Route Middleware)

在 4.0 版風(fēng)格的路由 "過(guò)濾器" 基礎(chǔ)上, 新版 5.0 已經(jīng)支持 HTTP 中間件, Laravel 自帶的 "authentication" 和 "filters" 已經(jīng)被轉(zhuǎn)換成中間件. 中間件為所有類型的過(guò)濾器提供了單一接口, 你可以很容易地對(duì)請(qǐng)求進(jìn)行審查和拒絕.

了解有關(guān)中間件的更多信息, 可以查看它的完整文檔.

控制器方法注入

除了現(xiàn)有的構(gòu)造器注入以外, 在新版本中還可以在控制器方法中的依賴項(xiàng)進(jìn)行類型約束. IoC container 會(huì)自動(dòng)注入依賴項(xiàng), 即使在路由包含其它參數(shù)的時(shí)候也是.

代碼如下:
public function createPost(Request $request, PostRepository $posts)
{
//
}
認(rèn)證腳手架

 

用戶注冊(cè), 認(rèn)證以及密碼重置控制器已經(jīng)內(nèi)置在 5.0 版的網(wǎng)站框架中, 除了控制器以外, 還有簡(jiǎn)單的視圖, 存放在 resources/views/auth 目錄. 除此之外, 網(wǎng)站初始框架中還包含了一個(gè) "users" 表的 migration 文件. 這些簡(jiǎn)單的資源幫助開(kāi)發(fā)者不用在用戶認(rèn)證功能上耗費(fèi)大量時(shí)間. 認(rèn)證相關(guān)的頁(yè)面可以通過(guò) auth/login 和 auth/register 這兩個(gè)路由訪問(wèn). App\Services\Auth\Registrar 服務(wù)負(fù)責(zé)處理創(chuàng)建和認(rèn)證用戶.

事件對(duì)象

在新版本中, 你可以把事件定義成對(duì)象而不是字符串. 看下面的例子:

代碼如下:
class PodcastWasPurchased {

public $podcast;

public function __construct(Podcast $podcast)
{
$this->podcast = $podcast;
}

}
這個(gè)事件可以這樣調(diào)用:

 

Event::fire(new PodcastWasPurchased($podcast));
當(dāng)然, 你的事件處理程序收到的也不再是一個(gè)數(shù)據(jù)列表, 而是一個(gè)事件對(duì)象:

代碼如下:
class ReportPodcastPurchase {

public function handle(PodcastWasPurchased $event)
{
//
}

}
了解有關(guān)事件的更多信息, 可以查看它的完整文檔.

 

命令/隊(duì)列

在 4.0 版支持的任務(wù)隊(duì)列基礎(chǔ)上, 5.0 支持把任務(wù)隊(duì)列定義為簡(jiǎn)單的命令對(duì)象. 這些命令存放在 app/Commands 目錄. 下面是一個(gè)簡(jiǎn)單的命令示例:

代碼如下:
class PurchasePodcast extends Command implements SelfHandling, ShouldBeQueued {

use SerializesModels;

protected $user, $podcast;

/**
* 創(chuàng)建新的命令實(shí)例
*
* @return void
*/
public function __construct(User $user, Podcast $podcast)
{
$this->user = $user;
$this->podcast = $podcast;
}

/**
* 執(zhí)行命令
*
* @return void
*/
public function handle()
{
// 處理購(gòu)買播客視頻的邏輯

event(new PodcastWasPurchased($this->user, $this->podcast));
}

}
Laravel 的基礎(chǔ)控制器 (base controller) 使用了新的 DispatchesCommands 特性, 允許你很方便地監(jiān)控命令的執(zhí)行:

 

$this->dispatch(new PurchasePodcastCommand($user, $podcast));
當(dāng)然, 你不僅可以把命令用于任務(wù)隊(duì)列(非同步執(zhí)行), 也可以用于同步任務(wù). 事實(shí)上, 把你的應(yīng)用需要執(zhí)行的復(fù)雜任務(wù)封裝成命令是一個(gè)很好的選擇. 了解有關(guān)命令的更多信息, 可以查看命令橋的詳細(xì)文檔.

數(shù)據(jù)庫(kù)隊(duì)列

新版 Laravel 包含 database 隊(duì)列驅(qū)動(dòng), 提供簡(jiǎn)單的, 本地的隊(duì)列驅(qū)動(dòng), 無(wú)需安裝額外的包. (譯注:比如讓不支持事務(wù)的數(shù)據(jù)庫(kù)進(jìn)行類似事務(wù)的數(shù)據(jù)操作)

Laravel 定時(shí)任務(wù)

分享:PHP框架Laravel的小技巧兩則
這篇文章主要介紹了PHP框架Laravel的小技巧兩則,本文講解了Route::controller中路由批量命名、根據(jù)系統(tǒng)變量判斷當(dāng)前運(yùn)行環(huán)境兩個(gè)小技巧,需要的朋友可以參考下 用 Laravel 作為 PHP 開(kāi)發(fā)框架很久了,但是有些官方文檔中沒(méi)有覆蓋到的地方,每隔一段時(shí)間又會(huì)忘記。最近做

共2頁(yè)上一頁(yè)12下一頁(yè)
來(lái)源:模板無(wú)憂//所屬分類:PHP教程/更新時(shí)間:2015-02-11
相關(guān)PHP教程