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

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

編輯Tag賺U幣
教程Tag:暫無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)很久很久了, 之前跳票說要到今年一月份發(fā)布. 從一月份就一直在刷新官網(wǎng)和博客, 始終沒有更新的消息, 前幾天終于看到官網(wǎng)文檔切換到了 5.0 版. 新版本帶來了眾多令人激動(dòng)的新特性, 尤其是定時(shí)任務(wù)隊(duì)列和表單請求兩個(gè)特性, 光看一下更新說明中的簡單介紹都忍不住要上手嘗試了. 今天總算抽出一點(diǎn)時(shí)間把官方的新特性說明文檔簡單地翻譯了一下, 希望所有喜歡 Laravel 框架的朋友都能感受到這個(gè)版本帶來的激動(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 來創(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è)命名空間是可以通過新增加的 Artisan 命令 app:name 來修改的.

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

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

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

Contracts

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

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

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

路由中間件 (Route Middleware)

在 4.0 版風(fēng)格的路由 "過濾器" 基礎(chǔ)上, 新版 5.0 已經(jīng)支持 HTTP 中間件, Laravel 自帶的 "authentication" 和 "filters" 已經(jīng)被轉(zhuǎn)換成中間件. 中間件為所有類型的過濾器提供了單一接口, 你可以很容易地對請求進(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)證腳手架

 

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

事件對象

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

代碼如下:
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è)事件對象:

代碼如下:
class ReportPodcastPurchase {

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

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

 

命令/隊(duì)列

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

代碼如下:
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()
{
// 處理購買播客視頻的邏輯

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ù)庫隊(duì)列

新版 Laravel 包含 database 隊(duì)列驅(qū)動(dòng), 提供簡單的, 本地的隊(duì)列驅(qū)動(dòng), 無需安裝額外的包. (譯注:比如讓不支持事務(wù)的數(shù)據(jù)庫進(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 開發(fā)框架很久了,但是有些官方文檔中沒有覆蓋到的地方,每隔一段時(shí)間又會(huì)忘記。最近做

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