<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 發行說明 - [支持策略](#support-policy) - [Laravel 5.3](#laravel-5.3) - [Laravel 5.2](#laravel-5.2) - [Laravel 5.1.11](#laravel-5.1.11) - [Laravel 5.1.4](#laravel-5.1.4) - [Laravel 5.1](#laravel-5.1) - [Laravel 5.0](#laravel-5.0) - [Laravel 4.2](#laravel-4.2) - [Laravel 4.1](#laravel-4.1) <a name="support-policy"></a> ## 支持策略 Laravel 5.1 LTS 版本會提供兩年的 BUG 修復及三年的安全性修復,LTS 版本是 Laravel 能提供的維護時間最長的發行版。 對于一般的版本,會提供六個月的 BUG 修復及一年的安全性修復。 > [Laravel 的發布路線圖](https://phphub.org/topics/2594) - by [Summer](http://github.com/summerblue) <a name="laravel-5.3"></a> ## Laravel 5.3 Laravel 5.3 在 5.2 基礎上進行了優化,新特性包括以下: * [消息通知系統 Laravel Notifications](/docs/5.3/notifications); * [事件廣播系統 Laravel Echo](/docs/5.3/broadcasting); * [Laravel Passport 快速 OAuth2 服務器的擴展包](/docs/5.3/passport); * [Laravel Scout 全文搜索引擎](/docs/5.3/scout); * Laravel Elixir 開始支持 Webpack; * 郵件操作 Laravel Mailable; * `web` 和 `api` 的路由分離; * 基于閉包的控制臺命令; * 上傳文件存儲的幫助函數; * 支持 POPO 和單動作控制; * 優化默認前端腳手架,等。 ### 消息通知 Notifications > {video} Laracasts 上關于此功能的免費視頻 [video tutorial](https://laracasts.com/series/whats-new-in-laravel-5-3/episodes/9)。 Laravel Notifications 提供了簡單、優雅的 API 支持你在不同的發送媒介中發送通知,例如郵件、SMS、Slack 等等。 例如,你可以定義一個單據已經支付的通知,然后通過郵件和 SMS 發送這個通知: $user->notify(new InvoicePaid($invoice)); [Laravel 社區](http://laravel-notification-channels.com) 已經為通知系統編寫了各式的驅動,甚至包括對 iOS 和 Android 通知的支持,更多關于通知系統的信息,請查看 [完整的文檔](/docs/5.3/notifications)。 ### WebSockets / 事件廣播 事件廣播在之前版本的 Laravel 中已經存在,Laravel 5.3 現支持對私有和已存在的 WebSocket 頻道添加頻道級認證: /* * 頻道認證 */ Broadcast::channel('orders.*', function ($user, $orderId) { return $user->placedOrder($orderId); }); Laravel Echo 是一個可通過 NPM 安裝的全新的 JavaScript 包,會和 Laravel 5.3 一起發布,Echo 為客戶端 JavaScript 中監聽服務器端事件提供了簡單、優雅的 API 接口。 Echo 默認包含對 [Pusher](https://pusher.com) 和 [Socket.io](http://socket.io) 的支持: Echo.channel('orders.' + orderId) .listen('ShippingStatusUpdated', (e) => { console.log(e.description); }); 除了訂閱到傳統頻道上,Laravel Echo 也讓頻道間的監聽變得簡單: Echo.join('chat.' + roomId) .here((users) => { // }) .joining((user) => { console.log(user.name); }) .leaving((user) => { console.log(user.name); }); 更多信息請查閱 [完整文檔](/docs/5.3/broadcasting). ### Laravel Passport (OAuth2 認證服務) > {video} Laracasts 上關于此功能的免費視頻 [video tutorial](https://laracasts.com/series/whats-new-in-laravel-5-3/episodes/13)。 Laravel 5.3 的 Passport 讓 API 認證變得簡單。Laravel Passport 可以讓你在幾分鐘內為應用程序創建一個完整的 OAuth2 認證服務,Passport 基于 Alex Bilbie 的 [League OAuth2 server](https://github.com/thephpleague/oauth2-server) 實現。 Passport 讓發放 OAuth2 令牌(Access Token)變得輕松,你還可以允許用戶通過 Web 界面創建 `個人訪問令牌`。 為了方便提高開發效率,Passport 內置了一個 Vue 組件,該組件提供了 OAuth2 后臺界面功能,允許用戶創建客戶端、撤銷訪問令牌,以及更多其他功能: <passport-clients></passport-clients> <passport-authorized-clients></passport-authorized-clients> <passport-personal-access-tokens></passport-personal-access-tokens> 如果你不想使用 Vue 組件,你可以自由的定制用于管理客戶端和訪問令牌的前端、后臺。Passport 提供了一個簡單的 JSON API,你可以在前端使用任何 JavaScript 框架與之集成。 Passport 還提供了方便的 API 讓你定制「Token 訪問域」: Passport::tokensCan([ 'place-orders' => 'Place new orders', 'check-status' => 'Check order status', ]); 此外,Passport 還包含了一個用于檢查「Token 訪問域」訪問權限的中間件: Route::get('/orders/{order}/status', function (Order $order) { // 檢查令牌是否擁有訪問域 "check-status" })->middleware('scope:check-status'); 最后,Passport 還支持從 JavaScript 應用訪問你的 API,而不必擔心訪問令牌傳輸。 Passport 通過加密 JWT cookies 和同步「CSRF 令牌」來實現此功能,讓你專注于業務開發。 更多關于 Passport 信息,請查看 [完整文檔](/docs/5.3/passport)。 ### 搜索系統 (Laravel Scout) Laravel Scout 提供了一個簡單的、基于驅動的、針對 [Eloquent](/docs/5.3/eloquent) 模型的全文搜索解決方案。 通過模型觀察者,Scout 會自動同步更新 Eloquent 的搜索索引,目前,Scout使用 [Algolia](https://www.algolia.com/) 驅動,你可以自由的編寫自己驅動來擴展 Scout。 你只需要添加 Searchable trait 到模型中,就能讓模型支持搜索: <?php namespace App; use Laravel\Scout\Searchable; use Illuminate\Database\Eloquent\Model; class Post extends Model { use Searchable; } 在你在模型中添加 trait 以后,數據會在 `save` 的時候自動保持同步: $order = new Order; // ... $order->save(); 在模型被成功索引以后,可以很輕松的使用全文搜索,你甚至可以為索引的結果進行分頁操作: return Order::search('Star Trek')->get(); return Order::search('Star Trek')->where('user_id', 1)->paginate(); 更多 Scout 功能,請查閱 [Scout 的完整文檔](/docs/5.3/scout)。 ### Mailable 對象 > {video} Laracasts 上關于此功能的免費視頻 [video tutorial](https://laracasts.com/series/whats-new-in-laravel-5-3/episodes/6)。 Laravel 5.3 Mailable 是一個嶄新的 Mail 操作類,通過一種更加優雅的方式發送郵件,而不再需要在閉包中自定義郵件信息。 例如,定義一個簡單的郵寄對象用作發送歡迎郵件: class WelcomeMessage extends Mailable { use Queueable, SerializesModels; /** * Build the message. * * @return $this */ public function build() { return $this->view('emails.welcome'); } } Mailable 對象被創建以后,你可以使用一個簡單、優雅的 API 將其發送給用戶: Mail::to($user)->send(new WelcomeMessage); Mailable 還支持隊列操作,只需要在類聲明里實現 `ShouldQueue` 即可: class WelcomeMessage extends Mailable implements ShouldQueue { // } 更多關于 Mailable 的信息,請查看 [完整文檔](/docs/5.3/mail)。 ### 存儲上傳文件 > {video} Laracasts 上關于此功能的免費視頻 [video tutorial](https://laracasts.com/series/whats-new-in-laravel-5-3/episodes/12)。 存儲用戶上傳文件,在 Web 開發中是一個很常見的任務。 Laravel 5.3 提供了一個便捷的 `store` 方法,只需要對上傳文件對象調用此方法,并傳參準備存儲的路徑即可: /** * Update the avatar for the user. * * @param Request $request * @return Response */ public function update(Request $request) { $path = $request->file('avatar')->store('avatars', 's3'); return $path; } 更多上傳文件信息,請查看 [完整文檔](/docs/{{version}}/filesystem#file-uploads)。 ### Webpack 和 Laravel Elixir Laravel Elixir 6.0 與 Laravel 5.3 共同發布,內置了 Webpack 和 Rollup JavaScript。 默認情況下,Laravel 5.3 的 `gulpfile.js` 使用 Webpack 來編譯你的 JavaScript 文件: elixir(mix => { mix.sass('app.scss') .webpack('app.js'); }); 完整文檔請見 [Laravel Elixir](/docs/5.3/elixir) 。 ### 前端架構 > {video} Laracasts 上關于此功能的免費視頻 [video tutorial](https://laracasts.com/series/whats-new-in-laravel-5-3/episodes/4)。 Laravel 5.3 提供了一個更加現代的前端架構。這主要會影響 `make:auth` 命令生成認證相關的前端腳手架代碼,不再從 CDN 中加載前端資源,所有依賴被定義在默認的 package.json 文件中,你可以自行修改。 此外,支持單文件的 Vue 組件現在直接開箱即用, `resources/assets/js/components` 目錄下包含了一個簡單的示例 `Example.vue`,新的 `resources/assets/js/app.js` 用來配置 JavaScript 類庫依賴和 Vue 子模塊。 這種架構對開始開發現代的、強大的 JavaScript 應用提供了更好的支持,而不需要要求應用使用任何特定 JavaScript 或者 CSS 框架。 更多信息,請查看對應文檔 [前端文檔](/docs/5.3/frontend)。 ### 路由文件 默認情況下,新安裝的 Laravel 5.3 應用在新的頂級目錄 `routes` 下包含了 `web.php` 和 `api.php` 兩個 `HTTP` 路由文件,你也可以按照此方法自行擴展。 API 相關的路由在 `RouteServiceProvider` 中指定了自動添加 `api` 前綴。 ### 閉包控制臺命令 除了通過命令類定義之外,Artisan 命令現支持在 `app/Console/Kernel.php` 文件中使用簡單閉包的方式定義。 在新安裝的 Laravel 5.3 應用中,`commands` 方法會加載 `routes/console.php` 文件,從而允許你基于閉包、以路由風格定義控制臺命令: Artisan::command('build {project}', function ($project) { $this->info('Building project...'); }); 更多信息請參見 [Artisan 文檔](/docs/5.3/artisan#closure-commands)。 ### Blade 中的 `$loop` 魔術變量 > {video} Laracasts 上關于此功能的免費視頻 [video tutorial](https://laracasts.com/series/whats-new-in-laravel-5-3/episodes/7)。 當我們在 Blade 模板中循環遍歷的時候,`$loop` 魔術變量將會在循環中生效。通過該變量可以訪問很多有用的信息,比如當前循環索引值,以及當前循環是第一個還是最后一個: @foreach ($users as $user) @if ($loop->first) This is the first iteration. @endif @if ($loop->last) This is the last iteration. @endif <p>This is user {{ $user->id }}</p> @endforeach 更多信息請查看 [Blade 文檔](/docs/5.3/blade#the-loop-variable). <a name="laravel-5.2"></a> ## Laravel 5.2 Laravel 5.2 在 Laravel 5.1 的基礎上進行了優化,新特性包括以下: * 支持更多樣的用戶認證驅動; * 隱式數據模型綁定; * 簡化 Eloquent 全局作用域; * 內置用戶認證腳手架支持; * 中間件組; * 訪問頻率限制中間件; * 數組認證的優化等 ### 用戶認證驅動 / "多認證系統" 在之前的 Laravel 版本中,框架只支持默認的、基于 session 的認證驅動,且在單個應用中只能擁有一個認證模型類。 Laravel 5.2 對此進行了改進,你可以定義多個認證驅動,還支持多個可認證的數據模型以及用戶表,并且可以獨立控制其認證。 如果你的應用包含 `管理員用戶數據表` 和一個 `學生用戶數據表`,現在你可以使用 `Auth` 來實現管理員用戶和學生用戶的獨立登錄而互不影響。 ### 用戶認證腳手架 Laravel 不止提供服務器端的用戶認證邏輯代碼,Laravel 5.2 還提供了便捷的方式來創建認證視圖,只需在終端執行下 `make:auth` 命令即可: php artisan make:auth 該命令會生成純文本、兼容 Bootstrap 樣式,用于登錄、注冊和密碼重置的視圖。該命令還會順帶在路由文件中增加對應的授權路由。 > **注意**:該功能特性只能在新應用中使用,不能在應用升級過程中使用。 ### 隱式數據模型綁定 隱式模型綁定使得在路由和控制器中注入模型實例更加便捷。假設你有一個路由定義如下: use App\User; Route::get('/user/{user}', function (User $user) { return $user; }); Laravel 5.1 中,你需要通過 `Route::model` 方法指示 Laravel 注入 `App\User` 實例來匹配路由中的 `{user}` 參數。 現在,在 Laravel 5.2 中,框架將會基于相應 URI 判斷 **自動** 注入模型,從而允許你快速訪問需要的模型實例。 如路由參數片段 `{user}` 匹配到 `路由閉包` 或 `控制器方法` 中對應參數 `$user`,且類型提示為 Eloquent 數據模型的話,Laravel 將會自動注入該模型。 更多隱式模型綁定信息,請查看 [HTTP 路由模型綁定部分](/docs/{{version}}/routing#Route-Model-Binding)。 ### 中間件組 中間件組允許你使用單個 `鍵` 對相關路由中間件進行分組,從而實現為某個路由一次性指定多個中間件。例如,在同一個應用中同時構建 Web UI 和 API 時,這一特性就會派上用場,你可以將 Session 和 CSRF 路由分組到一個 `web` 組,或者將訪問頻率限制分組到 `api` 組中。 實際上,默認的 Laravel 5.2 應用結構采用的正是這個方法。例如,在默認的 `App\Http\Kernel.php` 文件中你會看到如下: /** * 應用程序的中間件分組 * * @var array */ protected $middlewareGroups = [ 'web' => [ \App\Http\Middleware\EncryptCookies::class, \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, \Illuminate\Session\Middleware\StartSession::class, \Illuminate\View\Middleware\ShareErrorsFromSession::class, \App\Http\Middleware\VerifyCsrfToken::class, ], 'api' => [ 'throttle:60,1', ], ]; 然后,`web` 組可以這樣指定給路由: Route::group(['middleware' => ['web']], function () { // }); 默認的,所有的 `app/Http/routes.php` 中的路由 **已經** 在 `RouteServiceProvider` 的 `mapWebRoutes` 方法中指定了 `web` 中間件組,所以你不必重復指定。 ### 訪問頻率限制 框架現在內置了一個新的訪問頻率限制中間件,允許你輕松控制給定 IP 地址在指定時間內對某個路由發起請求的數目。 例如,要限制某個 IP 地址每分鐘只能訪問某個路由 60 次,你可以這么做: Route::get('/api/users', ['middleware' => 'throttle:60,1', function () { // }]); ### 數組輸入驗證 Laravel 5.2 可輕松實現表單字段的數組輸入驗證。例如,要驗證指定數組輸入字段中的每一個 email 是否唯一,可以這么做: $validator = Validator::make($request->all(), [ 'person.*.email' => 'email|unique:users' ]); 你可以使用 `*` 來自定義驗證數組字段的錯誤消息提醒: 'custom' => [ 'person.*.email' => [ 'unique' => '用戶的 Email 必須是唯一的', ] ], ### `bail` 驗證規則 Laravel 5.2 新添加了一個 `bail` 認證規則,此規則會在第一個失敗認證后停止后面的其他認證檢查。例如:你想在 `integer` 數值檢查失敗后停止對 `unique` 唯一性的檢查: $this->validate($request, [ 'user_id' => 'bail|integer|unique:users' ]); ### Eloquent 全局作用域優化 在之前的 Laravel 版本中,Eloquent 全局作用域的實現復雜且容易出錯,但在 Laravel 5.2 中,全局查詢作用域只需實現一個簡單的 `apply` 方法即可。 更多關于全局作用域的使用,請查閱 [Eloquent 文檔](/docs/{{version}}/eloquent#global-scopes). <a name="laravel-5.1.11"></a> ## Laravel 5.1.11 Laravel 5.1.11 推出了內置的 [授權](/docs/{{version}}/authorization) 功能!利用回調和授權策略類,能更方便的組織應用程序的授權邏輯。 更多的信息請參考 [授權的文檔](/docs/{{version}}/authorization)。 <a name="laravel-5.1.4"></a> ## Laravel 5.1.4 Laravel 5.1.4 增加了簡單的登錄限制功能。查閱 [認證的文檔](/docs/{{version}}/authentication#authentication-throttling) 以獲取更多信息。 <a name="laravel-5.1"></a> ## Laravel 5.1 Laravel 5.1 由 Laravel 5.0 改進而成,變更包括但是不限于: * 采用 PSR-2 規范 * 支持添加事件廣播 * 中間件參數 * Artisan 的改進等等。 ### PHP 5.5.9+ 由于 PHP 5.4 將在九月「結束壽命」,PHP 開發團隊不再提供安全性更新,所以 Laravel 要求 PHP 5.5.9 或更高的版本。 PHP 5.5.9 同時也是最新版本的 PHP 函數庫,像是 Guzzle 及 AWS SDK 需要的最小版本需要。 ### LTS Laravel 5.1 是 Laravel 生態系統中第一個 **長期支持** 版本。Laravel 5.1 會獲得兩年的 BUG 修復及三年的安全性修復,此策略也使 Laravel 能更好的服務于較大型的企業客戶及消費者。 ### PSR-2 [PSR-2 代碼風格指南](https://phphub.org/topics/2079) 已經被 Laravel 框架采用為默認的代碼風格指南。此外,所有的生成器都已進行更新,生成的文件將兼容 PSR-2 規范。 ### 文檔 Laravel 文檔的每一頁已被精心審閱,并得到顯著的改善。所有的代碼例子也進行了嚴密檢查,使其有更高的上下文關聯性。 ### 事件廣播 WebSockets 技術越來越多的被現代 Web 應用使用,當服務器上一些數據更新,WebSocket 會實時發送一個消息給客戶端,實現即時更新用戶狀態功能。 Laravel 的事件廣播機制很好的支持了此類應用的開發,廣播事件允許服務器端代碼和 JavaScript 框架間分享相同的事件名稱。 了解更多關于事件廣播,請查閱 [事件的文檔](/docs/{{version}}/events#broadcasting-events)。 ### 中間件參數 中間件支持接收自定義傳參,例如要在運行特定操作之前,檢查當前登錄的用戶是否具備「某角色」,可以創建 `RoleMiddleware` 來接收角色名稱作為傳參: <?php namespace App\Http\Middleware; use Closure; class RoleMiddleware { /** * 運行請求過濾。 * * @param \Illuminate\Http\Request $request * @param \Closure $next * @param string $role * @return mixed */ public function handle($request, Closure $next, $role) { if (! $request->user()->hasRole($role)) { // 重定向... } return $next($request); } } 在路由中使用冒號 `:` 來區隔中間件名稱與參數,多個參數可使用逗號作為分隔: Route::put('post/{id}', ['middleware' => 'role:editor', function ($id) { // }]); 關于中間件的更多信息,請查閱 [中間件的文檔](/docs/{{version}}/middleware)。 ### 測試改進 Laravel 內置的測試功能已得到顯著的改善,新版本提供了簡明的接口與應用程序進行交互,響應檢查也變得更加輕松。 例如下方的測試: public function testNewUserRegistration() { $this->visit('/register') ->type('Taylor', 'name') ->check('terms') ->press('Register') ->seePageIs('/dashboard'); } 關于測試的更多信息,請查閱 [測試的文檔](/docs/{{version}}/testing)。 ### 模型工廠 Laravel 的 [模型工廠](/docs/{{version}}/testing#model-factories) 提供一種簡單的方式來創建仿真 Eloquent 模型。 在為 Eloquent 模型定義一組「默認」填充字段后,即可為測試,或者數據填充生成測試模型實例。 另外,模型工廠支持使用 [Faker](https://github.com/fzaninotto/Faker) 來生成隨機數據: $factory->define(App\User::class, function ($faker) { return [ 'name' => $faker->name, 'email' => $faker->email, 'password' => str_random(10), 'remember_token' => str_random(10), ]; }); 更多關于模型工廠的信息,請查閱 [它的文檔](/docs/{{version}}/testing#model-factories)。 ### Artisan 的改進 Artisan 命令現支持類似于命名路由的定義,以簡單易懂的形式來定義命令行的參數及選項。 舉個例子,你可以定義一個簡單的命令及它的參數和選項,如下: /** * 命令行的名字及署名。 * * @var string */ protected $signature = 'email:send {user} {--force}'; 更多關于定義 Artisan 命令的消息,請參考 [Artisan 的文檔](/docs/{{version}}/artisan)。 ### 文件夾結構 為了更方便理解,`app/Commands` 目錄已經被更名為 `app/Jobs`。 此外,`app/Handler` 目錄已經被合并成一個只包含事件偵聽器的 `app/Listeners` 目錄中。 這不是一個重大的改變,你不必更新成新的文件夾結構也能使用 Laravel 5.1。 ### 加密 在 Laravel 之前的版本,加密是通過 `mcrypt` PHP 擴展進行處理。不過,從 Laravel 5.1 起,加密將采用更積極維護的 `openssl` 擴展進行處理。 <a name="laravel-5.0"></a> ## Laravel 5.0 Laravel 5.0 引進了新的應用程序架構。新架構允許 Laravel 創建更加健壯的應用程序,新架構全面采用新的自動加載標準(PSR-4)。 以下是一些主要變化: ### 新的目錄結構 舊的 `app/models` 目錄已經完全被移除。對應的,你所有的代碼都放在 `app` 目錄下。 默認情況下使用 `App` 命名空間。可以使用 `app:name` Artisan 命令對默認命名空間進行修改。 控制器、中間件,以及表單請求(Laravel 5.0 中新型態的類),分門別類的放在 `app/Http` 目錄下,因為他們都與應用程序的 HTTP 傳輸層相關。除了一個路由設置的文件外,所有中間件現都分開為獨自的類文件。 `app/Providers` 目錄取代了舊版 Laravel 4.x `app/start` 里的文件。這些服務提供者為應用程序提供了各種引導功能,像是錯誤處理,日志紀錄,路由加載等等。當然,你可以任意的創建新的服務提供者。 應用程序的語言文件和視圖都被移到 `resources` 目錄下。 ### Contracts 所有 Laravel 組件實現所用的接口都放在 `illuminate/contracts` 文件夾中,他們沒有其他依賴。這些方便集成的接口,讓依賴注入變得低耦合,可簡單作為 Laravel Facades 的替代選項。 更多關于 contracts 的信息,參考 [完整文檔](/docs/{{version}}/contracts)。 ### 路由緩存 如果你的應用程序全部使用控制器路由,新的 `route:cache` Artisan 命令可大幅度地優化路由注冊尋找速度。 這對于擁有 100 個以上路由規則的應用程序來說很有用,可以 **大幅度地** 加快應用程序路由部分的處理速度。 ### 路由中間件 除了像 Laravel 4 風格的路由「過濾器」,Laravel 5 現在有 HTTP 中間件,而原本的認證和 CSRF 「過濾器」已經改寫成中間件。中間件提供了單個、一致的接口取代了各種過濾器,讓你在請求進到應用程序前,可以簡單地檢查甚至拒絕請求。 更多關于中間件的信息,參考 [完整文檔](/docs/{{version}}/middleware)。 ### 控制器方法注入 除了之前有的類的構造函數注入外,你現在可以在控制器方法中使用依賴注入。[服務容器](/docs/{{version}}/container) 會自動注入依賴,即使路由包含了其它參數也不成問題: public function createPost(Request $request, PostRepository $posts) { // } ### 認證基本架構 認證系統默認包含了用戶注冊,認證,以及重設密碼的控制器,還有對應的視圖,視圖文件存放在 `resources/views/auth`。 除此之外,「users」數據表遷移也默認包含在框架中。這些簡單的資源,可以讓你把心思放在產品開發上,而不用陷在編寫認證模板的泥潭。 認證相關的視圖可以通過 `auth/login` 以及 `auth/register` 路由訪問。 `App\Services\Auth\Registrar` 會負責處理用戶認證和注冊用戶的相關邏輯。 ### 事件對象 你現在可以將事件定義成對象,而不是僅使用字符串。例: <?php class PodcastWasPurchased { public $podcast; public function __construct(Podcast $podcast) { $this->podcast = $podcast; } } 這個事件可以像一般使用那樣被派發: Event::fire(new PodcastWasPurchased($podcast)); 當然,你的事件處理會收到事件的對象而不是數據的列表: <?php class ReportPodcastPurchase { public function handle(PodcastWasPurchased $event) { // } } 更多關于使用事件的信息,參考 [完整文檔](/docs/{{version}}/events)。 ### 命令及隊列 除了 Laravel 4 形式的隊列任務,Laravel 5 還支持命令對象直接作為隊列任務。這些命令放在 `app/Commands` 目錄下。下面是個例子的命令: <?php class PurchasePodcast extends Command implements SelfHandling, ShouldBeQueued { use SerializesModels; protected $user, $podcast; /** * Create a new command instance. * * @return void */ public function __construct(User $user, Podcast $podcast) { $this->user = $user; $this->podcast = $podcast; } /** * Execute the command. * * @return void */ public function handle() { // Handle the logic to purchase the podcast... event(new PodcastWasPurchased($this->user, $this->podcast)); } } Laravel 的基底控制器使用了新的 `DispatchesCommands` trait,讓你可以簡單的派發命令運行: $this->dispatch(new PurchasePodcastCommand($user, $podcast)); 當然,你也可以將命令視為同步運行(而不會被放到隊列里)的任務。事實上,「命令總線」是個不錯的設計模式,可以封裝應用程序需要運行的復雜任務。更多相關的信息,參考 [command bus](/docs/{{version}}/bus) 文檔。 ### 數據庫隊列 `database` 隊列驅動現在已經包含在 Laravel 中了,提供了簡單的本地端隊列驅動,除了數據庫相關軟件外不需安裝其它擴展包,完全開箱即用。 ### Laravel 調度器 在過去,開發者是在 crontab 里配置任務調度的。然而,這是件很頭痛的事情,因為你的命令行調度不在版本控制中,并且必須登錄到服務器里才能添加新的 Cron 設置。 Laravel 命令行調度的存在,就是為了改變這一情況。 命令行調度系統讓你在 Laravel 里定義富有表達性的命令調度,而且只需要在服務器里設置一個 Cron 設置即可。 看起來如下: $schedule->command('artisan:command')->dailyAt('15:00'); 參考 [完整文檔](/docs/{{version}}/artisan#scheduling-artisan-commands) 學習所有調度相關知識。 ### Tinker 與 Psysh `php artisan tinker` 命令現在使用 Justin Hileman 的 [Psysh](https://github.com/bobthecow/psysh),一個 PHP 更強大的 REPL。如果你喜歡 Laravel 4 的 Boris,你也會喜歡上 Psysh。更好的是,它可以在 Windows 上運行! 趕快嘗試下吧: php artisan tinker ### DotEnv 比起一堆令人困惑的、嵌套的環境配置文件,Laravel 5 現在使用了 Vance Lucas 的 [DotEnv](https://github.com/vlucas/phpdotenv)。 這個擴展包提供了超級簡單的方式管理配置文件,并且讓 Laravel 5 環境偵測變得輕松。更多的細節,參考完整的 [配置文件文檔](/docs/{{version}}/configuration#environment-configuration)。 ### Laravel Elixir Jeffrey Way 的 Laravel Elixir 提供了一個流暢、口語化的接口,可以編譯以及合并靜態資源。如果你曾經因為學習 Grunt 或 Gulp 而被嚇到,不必再害怕了。Elixir 讓使用 Gulp 編譯 Less、Sass 及 CoffeeScript 變得簡單。它甚至可以幫你運行測試! 更多關于 Elixir 的信息,參考 [完整文檔](/docs/{{version}}/elixir)。 ### Laravel Socialite Laravel Socialite 是可選的,兼容 Laravel 5.0 以上的 OAuth 認證擴展包。目前 Socialite 支持 Facebook、Twitter、Google 以及 GitHub。它寫起來是這樣的: public function redirectForAuth() { return Socialize::with('twitter')->redirect(); } public function getUserFromProvider() { $user = Socialize::with('twitter')->user(); } 不再需要花上數小時編寫 OAuth 的認證流程,只要幾分鐘!查看 [完整文檔](/docs/{{version}}/authentication#social-authentication) 里有所有的細節。 ### 文件系統集成 Laravel 現在包含了強大的 [Flysystem 文件系統](https://github.com/thephpleague/flysystem)(一個文件系統的抽象函數庫)。 文件系統以抽象的概念,把本地端文件系統、Amazon S3 和 Rackspace 云存儲集成在一起,統一且優雅的 API! 現在要將文件存到 Amazon S3 相當簡單: Storage::put('file.txt', 'contents'); 更多關于 Laravel 文件系統集成,參考 [完整文檔](/docs/{{version}}/filesystem)。 ### Form Requests Laravel 5.0 引進了 **form requests**,是繼承自 `Illuminate\Foundation\Http\FormRequest` 的類。這些 request 對象可以和控制器方法依賴注入結合使用,提供一個不需模版的方法,來驗證用戶輸入。讓我們深入點,看一個 `FormRequest` 的例子: <?php namespace App\Http\Requests; class RegisterRequest extends FormRequest { public function rules() { return [ 'email' => 'required|email|unique:users', 'password' => 'required|confirmed|min:8', ]; } public function authorize() { return true; } } 定義好類后,我們可以在控制器動作里使用類型提示進行依賴注入: public function register(RegisterRequest $request) { var_dump($request->input()); } 當 Laravel 的服務容器辨別出要注入的類是個 `FormRequest` 實例,該請求將會被 **自動驗證**。意味著,框架會自動根據你在 form request 類里自定的規則,對請求進行檢驗。當控制器動作調用時,你可以安全的假設 HTTP 的請求輸入己被驗證過。 甚至,若這個請求驗證不通過,一個 HTTP 重定向(可以自定義),會自動發出,錯誤消息可以被閃存到 session 中或是轉換成 JSON 返回。**表單驗證再簡單不過了。** 更多關于 `FormRequest` 驗證,請參考 [文檔](/docs/{{version}}/validation#form-request-validation)。 ### 簡易控制器請求驗證 Laravel 5 基底控制器包含一個 `ValidatesRequests` trait。這個 trait 包含了一個簡單的 `validate` 方法可以驗證請求。如果對你的應用程序來說 `FormRequests` 太復雜了,可以考慮使用手動驗證方法: public function createPost(Request $request) { $this->validate($request, [ 'title' => 'required|max:255', 'body' => 'required', ]); } 如果驗證失敗,會拋出異常以及返回適當的 HTTP 響應到瀏覽器。驗證錯誤信息會被閃存到 session 里!而如果請求是 AJAX 請求,Laravel 會自動返回 JSON 格式的驗證錯誤信息。 更多關于這個新方法的信息,參考 [這個文檔](/docs/{{version}}/validation#controller-validation)。 ### 新的生成器 為了響應新的應用程序默認架構,框架新增了許多 Artisan generator 命令。使用 `php artisan list` 查看完整的命令列表。 ### 配置文件緩存 你現在可以通過 `config:cache` 命令將所有的配置文件緩存在單個文件中,這樣在一定程度上會加快框架的啟動效率。 ### Symfony VarDumper 廣為使用的 `dd` 輔助函數,用作在調試時輸出變量信息,現采用令人驚艷的 Symfony VarDumper 擴展包。它提供了顏色標記的輸出,甚至數組可以自動縮合。在項目中試試下列代碼: dd([1, 2, 3]); <a name="laravel-4.2"></a> ## Laravel 4.2 此發行版本的完整的變更列表可以通過運行 `php artisan changes` 命令來獲取,或者 [Github 上的更動紀錄](https://github.com/laravel/framework/blob/4.2/src/Illuminate/Foundation/changes.json)。此紀錄僅含括主要更新和此發行的更動部分。 > **附注:** 在 4.2 開發期間,許多小的 BUG 修正與功能強化被整合至各個 4.1 的子發行版本中。所以,也請一并檢查 Laravel 4.1 版本的更新列表。 ### PHP 5.4 需求 Laravel 4.2 需要 PHP 5.4 以上的版本。此 PHP 更新版本讓我們可以使用 PHP 的新功能:traits 來為像是 [Laravel 收銀臺](/docs/billing) 來提供更具表達力的接口。PHP 5.4 也比 PHP 5.3 帶來顯著的速度及性能提升。 ### Laravel Forge Larvel Forge,一個網頁應用程序,提供一個簡單的接口讓你創建管理云端上的 PHP 服務器,像是 Linode、DigitalOcean、Rackspace 和 Amazon EC2。 支持自動化 nginx 設置、SSH 密鑰管理、Cron job 自動化、通過 NewRelic & Papertrail 服務器監控、「推送部署」、Laravel queue worker 設置等等。Forge 提供最簡單且更實惠的方式來部署所有你的 Laravel 應用程序。 默認 Laravel 4.2 的安裝里,`app/config/database.php` 配置文件已為 Forge 設置完成,讓你更方便的完成新平臺上的全新應用程序的部署。 關于 Laravel Forge 的更多信息可以在 [官方 Forge 網站](https://forge.laravel.com) 上找到。 ### Laravel Homestead Laravel Homestead 是一個健全的 Laravel 和 PHP 應用程序 Vagrant 環境。軟件依賴都已提前準備好,可以極快的被啟用。 Homestead 包含 Nginx 1.6、PHP 5.5.12、MySQL、Postres、Redis、Memcached、Beanstalk、Node、Gulp、Grunt 和 Bower。Homestead 包含一個簡單的 `Homestead.yaml` 配置文件,允許你在單個封裝包中管理多個 Laravel 應用程序。 默認的 Laravel 4.2 安裝中包含的 `app/config/local/database.php` 配置文件已經為你配置好了 Homestead 的數據庫連接。讓 Laravel 初始化安裝與設置更為方便。 官方文檔已經更新并包含在 [Homestead 文檔](/docs/homestead) 中。 ### Laravel 收銀臺 Laravel 收銀臺是一個簡單、具表達性的資源庫,用來管理 Stripe 的訂閱服務。雖然安裝此組件是可選的,我們仍然將收銀臺文檔包含在主要 Laravel 文檔中。新版本的收銀臺帶來了數個錯誤修正、多貨幣支持還有支持了最新的 Stripe API。 ### Queue Workers 常駐程序 Artisan `queue:work` 命令現在支持 `--daemon` 參數讓 worker 可以作為「常駐程序」啟用。代表 worker 可以持續的處理隊列工作,而不需要重啟框架。這讓一個復雜的應用程序對 CPU 的使用率有顯著的降低。 更多關于 Queue Workers 常駐程序信息請詳閱 [queue 文檔](/docs/queues#daemon-queue-worker)。 ### Mail API Drivers Laravel 4.2 為 `Mail` 類采用了新的 Mailgun 和 Mandrill API 驅動。對許多應用程序而言,他提供了比 SMTP 更快也更可靠的方法來遞送郵件。新的驅動使用了 Guzzle 4 HTTP 資源庫。 ### 軟刪除 Traits PHP 5.4 的 `traits` 提供了一個更加簡潔的軟刪除架構和全局作用域,這些新架構為框架提供了更有擴展性的功能,并且讓框架更加簡潔。 更多關于軟刪除的文檔請見: [Eloquent documentation](/docs/eloquent#soft-deleting)。 ### 更為方便的 認證(auth) & Remindable Traits 得益于 PHP 5.4 traits,我們有了一個更簡潔的用戶認證和密碼提醒接口,這也讓 `User` 模型文檔更加精簡。 ### "簡易分頁" 一個新的 `simplePaginate` 方法已被加入到查找以及 Eloquent 查找器中。讓你在分頁視圖中,使用簡單的「上一頁」和「下一頁」鏈接查找更為高效。 ### 遷移確認 在正式環境中,破壞性的遷移動作將會被再次確認。如果希望取消提示字符確認請使用 `--force` 參數。 <a name="laravel-4.1"></a> ## Laravel 4.1 ### 完整更動列表 此發行版本的完整更動列表,可以在版本 4.1 的安裝中命令行運行 `php artisan changes` 獲取,或者瀏覽 [Github 更新文件中](https://github.com/laravel/framework/blob/4.1/src/Illuminate/Foundation/changes.json) 中了解。其中只記錄了該版本比較主要的強化功能和更動。 ### 新的 SSH 組件 一個全新的 `SSH` 組件在此發行版本中登場。此功能讓你可以輕易的 SSH 至遠程服務器并運行命令。更多信息,可以參閱 [SSH 組件文檔](/docs/ssh)。 新的 `php artisan tail` 命令就是使用這個新的 SSH 組件。更多的信息,請參閱 `tail` [命令集文檔](http://laravel.com/docs/ssh#tailing-remote-logs)。 ### Boris In Tinker 如果你的系統支持 [Boris REPL](https://github.com/d11wtq/boris),`php artisan thinker` 命令將會使用到它。系統中也必須先行安裝好 `readline` 和 `pcntl` 兩個 PHP 擴展包。如果你沒這些擴展包,從 4.0 之后將會使用到它。 ### Eloquent 強化 Eloquent 添加了新的 `hasManyThrough` 關系鏈。想要了解更多,請參見 [Eloquent 文檔](/docs/eloquent#has-many-through)。 一個新的 `whereHas` 方法也同時登場,他將允許 [檢索基于關系模型](/docs/eloquent#querying-relations)。 ### 數據庫讀寫分離 Query Builder 和 Eloquent 目前通過數據庫層,已經可以自動做到讀寫分離。更多的信息,請參考 [文檔](/docs/database#read-write-connections)。 ### 隊列排序 隊列排序已經被支持,只要在 `queue:listen` 命令后將隊列以逗號分隔送出。 ### 失敗隊列作業處理 現在隊列將會自動處理失敗的作業,只要在 `queue:listen` 后加上 `--tries` 即可。更多的失敗作業處理可以參見 [隊列文檔](/docs/queues#failed-jobs)。 ### 緩存標簽 緩存「區塊」已經被「標簽」取代。緩存標簽允許你將多個「標簽」指向同一個緩存對象,而且可以清空所有被指定某個標簽的所有對象。更多使用緩存標簽信息請見 [緩存文檔](/docs/cache#cache-tags)。 ### 更具彈性的密碼提醒 密碼提醒引擎已經可以提供更強大的開發彈性,如:認證密碼、顯示狀態消息等等。使用強化的密碼提醒引擎,更多的信息 [請參閱文檔](/docs/security#password-reminders-and-reset)。 ### 強化路由引擎 Laravel 4.1 擁有一個完全重新編寫的路由層。API 一樣不變。然而與 4.0 相比,速度快上 100%。整個引擎大幅的簡化,且路由表達式大大減少對 Symfony Routing 的依賴。 ### 強化 Session 引擎 此發行版本中,我們亦發布了全新的 Session 引擎。如同路由增進的部分,新的 Session 層更加簡化且更快速。我們不再使用 Symfony 的 Session 處理工具,并且使用更簡單、更容易維護的自定義解法。 ### Doctrine DBAL 如果你有在你的遷移中使用到 `renameColumn`,之后你必須在 `composer.json` 里加 `doctrine/dbal` 進依賴擴展包中。此擴展包不再默認包含在 Laravel 之中。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看