99re热这里只有精品视频,7777色鬼xxxx欧美色妇,国产成人精品一区二三区在线观看,内射爽无广熟女亚洲,精品人妻av一区二区三区

從 4.2 升級到 5.0

2018-02-24 15:51 更新

全新安裝,然后遷移

推薦的升級方式是建立一個全新的 Laravel 5.0 項目,然后復制您在 4.2 的文件到此新的應用程序,這將包含控制器、路由、Eloquent 模型、Artisan 命令(Asset)、資源和關于此應用程序的其他特定文件。

最開始,安裝新的 Laravel 5 應用程序到新的本地目錄下,我們將詳細探討遷移各部分的過程。

Composer 依賴與組件

別忘了將任何附加于 Composer 的依賴組件加入 5.0 應用程序內(nèi),包含第三方代碼(例如 SDKs)。

部分組件也許不兼容剛發(fā)布的 Laravel 5 版本,請向組件管理者確認該組件支持 Laravel 5 的版本,當您在 Composer 內(nèi)加入任何組件,請執(zhí)行 composer update。

命名空間

默認情況下,Laravel 4 沒有在應用程序的源碼中使用命名空間,所以,舉例來說,所有的 Eloquent 模型和控制器僅存在「全局」的命名空間下,為了更快速的遷移,Laravel 5 也允許您可以將這些類別一樣保留在「全局」的命名空間。

設置文件

遷移環(huán)境變量

復制新的 .env.example 文件到 .env,在 5.0 這相當于原本的 .env.php。像是您的 APP_ENVAPP_KEY (您的加密鑰匙)、數(shù)據(jù)庫認證和您的緩存驅(qū)動與 session 驅(qū)動。

此外,復制原先自定義的 .env.php 文件,并修改為 .env (本機環(huán)境的真實設置值) 和 .env.example (給其他團隊成員的示例)。

更多關于環(huán)境設置值,請見完整文檔。

注意: 在部署 Laravel 5 應用程序之前,您需要在正式主機上放置 .env 文件并設置適當?shù)闹怠?/p>

設置文件

Laravel 5.0 不再使用 app/config/{environmentName}/ 目錄結構來提供對應該環(huán)境的設置文件,取而代之的是,將環(huán)境對應的設置值復制到 .env,然后在設置文件使用 env('key', 'default value') 來訪問,您可以在 config/database.php 文件內(nèi)看到相關范例。

將設置文件放在 config/ 目錄下,來表示所有環(huán)境共用的設置文件,或是在文件內(nèi)使用 env() 來取得對應該環(huán)境的設置值。

請記住,若您在 .env 文件內(nèi)增加 key 值,同時也要對應增加到 .env.example 文件中,這將可以幫助團隊成員修改他們的 .env 文件。

路由

復制原本的 routes.php 文件到 app/Http/routes.php。

控制器

下一步,請將所有的控制器復制到 app/Http/Controllers 目錄,既然在本指南中我們不打算遷移到完整的命名空間,請將 app/Http/Controllers 添加到 composer.jsonclassmap,接下來,您可以從 app/Http/Controllers/Controller.php 基礎抽象類中移除命名空間,并確認遷移過來的控制器要繼承這個基礎類。

app/Providers/RouteServiceProvider.php 文件中,將 namespace 屬性設置為 null。

路由過濾器

將過濾器綁定從原來的 app/filters.php 復制到 app/Providers/RouteServiceProvider.phpboot() 方法中,并在 app/Providers/RouteServiceProvider.php 加入 use Illuminate\Support\Facades\Route; 來繼續(xù)使用 Route Facade

您不需要移動任何 Laravel 4.0 默認的過濾器,像是 authcsrf 。他們已經(jīng)內(nèi)置,只是換作以中間件形式出現(xiàn)。那些在路由或控制器內(nèi)有參照到舊有的過濾器 (例如 ['before' => 'auth']) 請修改參照到新的中間件 (例如 ['middleware' => 'auth'].)

Laravel 5 并沒有將過濾器移除,您一樣可以使用 beforeafter 綁定和使用您自定義的過濾器。

全局 CSRF

默認情況下,所有路由都會使用CSRF 保護。若想關閉他們,或是在指定在特定路由開啟,請移除 App\Http\Kernelmiddleware 數(shù)組內(nèi)的這一行:

'App\Http\Middleware\VerifyCsrfToken',

如果您想在其他地方使用它,加入這一行到 $routeMiddleware:

'csrf' => 'App\Http\Middleware\VerifyCsrfToken',

現(xiàn)在,您可于路由內(nèi)使用 ['middleware' => 'csrf'] 即可個別添加中間件到路由/控制器。了解更多關于中間件,請見完整文檔。

Eloquent 模型

你可以建立新的 app/Models 目錄來放置所有 Eloquent 模型。并且同樣的,在 composer.json 將此目錄添加到 classmap 內(nèi)。

在模型內(nèi)加入 SoftDeletingTrait 來使用 Illuminate\Database\Eloquent\SoftDeletes.

Eloquent 緩存

Eloquent 不再提供 remember 方法來緩存查詢?,F(xiàn)在你需要手動使用 Cache::remember 方法快速緩存。了解更多關于緩存,請見完整文檔。

會員認證模型

要使用 Laravel 5 的會員認證系統(tǒng),請遵循以下指引來升級您的 User 模型:

從 use 區(qū)塊刪除以下內(nèi)容:

use Illuminate\Auth\UserInterface;
use Illuminate\Auth\Reminders\RemindableInterface;

添加以下內(nèi)容到 use 區(qū)塊:

use Illuminate\Auth\Authenticatable;
use Illuminate\Auth\Passwords\CanResetPassword;
use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
use Illuminate\Contracts\Auth\CanResetPassword as CanResetPasswordContract;

移除 UserInterface 和 RemindableInterface 接口。

實現(xiàn)以下接口:

implements AuthenticatableContract, CanResetPasswordContract

在類中聲明引入以下 traits:

use Authenticatable, CanResetPassword;

如果你引入了上面的 traits,從 use 區(qū)塊和類聲明中移除 Illuminate\Auth\Reminders\RemindableTraitIlluminate\Auth\UserTrait

Cashier 的用戶需要的修改

Laravel Cashier 的 trait 和接口名稱已作修改。trait 請改用 Laravel\Cashier\Billable 取代 BillableTrait。接口請改用 Laravel\Cashier\Contracts\Billable 取代 Larave\Cashier\BillableInterface 。不需要修改任何方法。

Artisan 命令

將所有的命令從舊的 app/commands 目錄移到新的 app/Console/Commands 目錄。接下來,把 app/Console/Commands 目錄添加到 composer.jsonclassmap 中。

然后,復制 Artisan 命令列表從 start/artisan.phpapp/Console/Kernel.php 文件的 command 數(shù)組內(nèi)。

數(shù)據(jù)庫遷移和數(shù)據(jù)填充

如果在您的數(shù)據(jù)庫內(nèi)已經(jīng)有 users 表,請移除 Laravel 5 內(nèi)置的兩個遷移文件。

將所有的遷移文件從舊的 app/database/migrations 目錄復制到新的 database/migrations 。所有的數(shù)據(jù)填充文件也要從 app/database/seeds 復制到 database/seeds

全局 IoC 綁定

若您在 start/global.php 有綁定任何 IoC,請將它們復制到 app/Providers/AppServiceProvider.php 內(nèi)的 register 方法,您可能需要引入 App facade。

你可以選擇將這些綁定,依照類型拆分到不同的服務提供者中。

視圖

將所有的視圖從舊的 app/views 復制到新的 resources/views 目錄內(nèi)。

Blade 標簽修改

從安全的角度考慮,Laravel 5.0 會過濾所有輸出,不論您使用 {{ }}{{{ }}} 標簽。您可以使用 {!! !!} 新的標簽來取消輸出過濾。請務必 確定 輸出內(nèi)容是安全地才使用 {!! !!} 標簽。

不過,如果您 仍然必須 使用舊的 Blade 語法,請在 AppServiceProvider@register 開頭加入以下內(nèi)容:

\Blade::setRawTags('{{', '}}');
\Blade::setContentTags('{{{', '}}}');
\Blade::setEscapedContentTags('{{{', '}}}');

但是輕易不要這樣做,這可能使您的應用進程更加容易受到 XSS 攻擊,并且用 {{-- 來注釋代碼將不再起作用。

多語言配置文件

將所有的多語言配置文件從舊的 app/lang 目錄復制到新的resources/lang 目錄。

公開目錄

將 4.2 版公共目錄內(nèi)的資源復制到新應用程序內(nèi)的public 目錄。并確認保留 5.0 版的 index.php 文件。

測試

將所有的測試文件從舊的 app/tests 復制到 tests 目錄。

各式各樣的文件

復制項目內(nèi)其他各式各樣的文件,例如:.scrutinizer.yml, bower.json 以及其他類似工具的設置文件。

您可以將 Sass,Less 或 CoffeeScript 移動到任何您想放置的地方。 resources/assets 目錄是一個不錯的默認位置。

表單和 HTML 輔助函數(shù)

如果您使用表單或 HTML 輔助函數(shù),您將會看到以下錯誤 class 'Form' not foundclass 'Html' not found 。Form 類以及 HTML 輔助函數(shù)在 Laravel 5.0 中已經(jīng)廢棄了;不過,這里有一些替代方法,比如基于社區(qū)驅(qū)動的,由 Laravel Collective 維護。

比如,你可以在 composer.json 文件中的 require 區(qū)塊增加 "laravelcollective/html": "~5.0"。

您也需要添加表單和 HTML 的 facades 以及服務提供者。 編輯 config/app.php 文件,添加此行到 'providers' 數(shù)組內(nèi):

'Collective\Html\HtmlServiceProvider',

接著,添加以下到 'aliases' 數(shù)組內(nèi):

'Form' => 'Collective\Html\FormFacade',
'Html' => 'Collective\Html\HtmlFacade',

緩存管理員

如果您的程序注入 Illuminate\Cache\CacheManager 來取得非 Facade 版本的 Laravel 緩存,請改用 Illuminate\Contracts\Cache\Repository 注入。

分頁

請將所有的 $paginator->links()$paginator->render() 取代。

Replace any calls to $paginator->getFrom() and $paginator->getTo() with $paginator->firstItem() and $paginator->lastItem() respectively.

Remove the "get" prefix from calls to $paginator->getPerPage(), $paginator->getCurrentPage(), $paginator->getLastPage() and $paginator->getTotal() (e.g. $paginator->perPage()).

Beanstalk 隊列

Laravel 5.0 使用 "pda/pheanstalk": "~3.0" 取代原本的 "pda/pheanstalk": "~2.1"。

Remote

Remote 組件已不再使用。

工作區(qū)

工作區(qū)組件已不再使用。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號