Laravel 4からLaravel 5への移行
:ステップバイステップガイド
Laravel 5がリリースされましたが、人々の変化に対する恐怖は残っています。新しいフォルダー構造など、いくつかの大きな変更について人々が不満を言うのを聞き続けています。アプリケーションが実行された場合、アプリケーションがクラッシュしますか? composer update
キーポイント
Laravel 4からLaravel 5へのアップグレードには、composer.json
Laravel 5にアップグレードするプロセスは、アプリケーションのサイズに応じて、複雑で時間がかかる場合があります。ただし、新しいフォルダー構造にアップグレードする必要はありません。古い構造を維持し、作曲家の依存関係のみを更新できますが、これは推奨されるプラクティスではありません。 私の既存のLaravel 4アプリケーションは、Google Analytics APIの使用に関する以前の記事のデモプログラムです。アプリケーションにはあまりコードがありませんが、チュートリアルには十分です。 最初にコンピューターにLaravel 5をインストールし、Laravel 4バージョンのアプリケーションを保存する一時的なフォルダーを作成しましょう。
Composerを介してLaravelをインストールすることを好みますが、ドキュメントにアクセスしてLaravelインストーラーの詳細をご覧ください。
リポジトリでVagrant Virtual Machineを使用するか、Homesteadの改善を使用できます。すべてがうまくいけば、Laravel 5のウェルカムページが表示されます。
composer create-project laravel/laravel --prefer-dist
をに移動する必要があります。資格情報はファイルに直接貼り付けられているので、環境変数を使用してみませんか?
app/config
app/config/analytics.php
ファイルは自動的にロードされ、ローカル環境の構成を生産環境、テスト環境などから分離するために使用できます。 config/analytics.php
// config/analytics.php return [ 'app_name' => env('app_name'), 'client_id' => env('client_id'), 'client_secret' => env('client_secret'), 'api_key' => env('api_key') ];
<code>// .env app_name='YOUR APP NAME' client_id='YOUR CLIENT ID' client_secret='CLIENT SECRET' api_key='API KEY'</code>
.env
laravel 4ルートは
フォルダーの下にグループ化されているため、に移動します。
フィルター
app/routes.php
Laravel 5はフィルターからミドルウェアに移行されているため、ルートにフィルターが含まれている場合は、必ずミドルウェアに変更してください。 app/Http
app/routes.php
app/Http/routes.php
カスタムフィルターがある場合は、ミドルウェアに移行できます。ルートではGoogleLeLoginミドルウェアを使用しています。実装は次のとおりです。
composer create-project laravel/laravel --prefer-dist
// config/analytics.php return [ 'app_name' => env('app_name'), 'client_id' => env('client_id'), 'client_secret' => env('client_secret'), 'api_key' => env('api_key') ];
<code>// .env app_name='YOUR APP NAME' client_id='YOUR CLIENT ID' client_secret='CLIENT SECRET' api_key='API KEY'</code>
CRSF保護ミドルウェアはデフォルトで追加されます。削除したい場合は、app/Http/Kernel.php
ファイルに移動して、対応する行にコメントすることができます。
コントローラー
コントローラーはhttpロジックの一部と見なされているため、app/controllers/*
をapp/Http/Controllers
に移動し、App\Http\Controllers
名前空間を使用する必要があります。あなたが修正する必要がある最後の問題は、Basecontrollerをコントローラークラスに変更することです。
アプリルートネームスペースが気に入らない場合は、以下のArtisanコマンドを使用してグローバルに変更できます。
Route::get('/report', ['middleware' => 'auth', function() { // }]);
移行
Google Analyticsアプリケーションにはローカルデータベースの相互作用はありませんが、アップグレードプロセスには言及する価値があります。
app/database
ディレクトリは/database
フォルダーにあります。ファイルをそこに移動するだけです。ディレクトリには、必要に応じて削除または更新できるユーザーテーブルとpassword_resetsテーブルが既に含まれています。
モデル
Laravel 4のモデルフォルダーが消え、Laravel 5はユーザーモデルをアプリフォルダーに直接配置します。例として。モデルをコピーして、アプリ名空間を使用することもできます。ただし、モデルをそこに配置するというアイデアが気に入らない場合は、アプリディレクトリの下にモデルと呼ばれる新しいフォルダーを作成できますが、クラス名空間に
名前空間を使用することを忘れないでください。 。
App\Models
// app/Http/Middleware/GoogleLogin.php class GoogleLogin { public function handle($request, Closure $next) { $ga = \App::make('\App\Services\GoogleLogin'); if (!$ga->isLoggedIn()) { return redirect('login'); } return $next($request); } }
SRCフォルダーには、Ga_ServiceとGa_utilsクラスが含まれています。それらがサービスだと思うなら、それらを
に入れることができます。それ以外の場合は、サービスクラスを保存するという新しいフォルダーを作成できます。最初はPSR-4で自動的にロードされなかったため、これは問題を引き起こすため、正しい新しい名前空間でコントローラーのクラス参照を更新する必要があります。 app/Services
app/GA
アプリケーションビューは、
フォルダーからフォルダーに移動します。
リソースフォルダーには、アプリケーションローカリゼーション用のLangフォルダーと、フロントエンドリソース用のAssetsフォルダーも含まれています。 Laravel 5はElixirを紹介します。これは、Gulp Task RunnerをLaravel開発環境に適応させます。 app/views
resources/views
アプリケーションのコンポーザー依存関係をコピーし、必要なアップグレードを行うようにしてください。デモのために、を新しいに移動し、これらの変更を反映するために
を実行します。
"google/apiclient": "1.1.*"
composer.json
formsおよびhtml composer update
パッケージは、Laravel 5のデフォルトインストールから削除されており、個別にインストールする必要があります。
HTMLヘルパー機能をプロジェクトに戻すには、"illuminate/html": "5.0.*"
パッケージをcomposer.json
に追加して実行する必要があります。その後、composer update
>プロバイダーアレイに'Illuminate\Html\HtmlServiceProvider'
を追加する必要があります。 。 HTMLを使用して、ブレードテンプレートに外観を形成する場合は、config/app.php
外観アレイに次の外観を追加できます。 config/app.php
composer create-project laravel/laravel --prefer-dist
結論
Laravel 5にアップグレードするプロセスの複雑さと期間は、常にアプリケーションのサイズに依存します。特定のケースでは、プロセスはこの例よりもはるかに長くなる可能性があります。この記事では、変更する必要があるものをすべてではないにしても、ほとんどを処理する必要がある一般的なプロセスを説明しようとします。新しいフォルダー構造にアップグレードする必要はありません。古い構造を維持し、作曲家の依存関係を更新するだけですが、これは推奨されるプラクティスではありません。ご質問やコメントがある場合は、以下に投稿してください。詳細については、フルバージョンアップグレードガイドを参照してください。
laravel 4 to laravel 5アップグレードガイドFAQ(FAQ)
Laravel 4とLaravel 5の主な違いは何ですか?laravel 5の環境構成を処理する方法は?
ファイルを使用しなくなりましたが、代わりに各環境に1つの.env.php
ファイルを使用します。これにより、さまざまな環境のさまざまな構成を簡単に管理できます。 .env
ファイルに環境変数を設定すると、Laravelが自動的にロードされます。 .env
Laravel 4からLaravel 5にアップグレードする方法は?
Laravel Elixirは、Laravel 5の新しいコンポーネントで、基本的なGulpタスクを定義するためのクリーンでスムーズなAPIを提供します。 SASSやCoffeeScriptなどの一般的なCSSとJavaScriptのプレテッサーをサポートしており、バージョンとリソースを接続する便利な方法も提供します。
Laravel 5は、Laravel 4のルーティングシステムよりも柔軟で強力な新しいルーティングシステムを導入します。ルーターはapp/Http/routes.php
ファイルで定義され、ルートをグループ化し、ミドルウェアを適用して、名前を付けても登録できます。
Laravel SocialIteは、Laravel 5の新しいコンポーネントであり、OAuthプロバイダーを使用して認証するための簡単で便利な方法を提供します。複数の人気プロバイダーを箱から出してサポートし、独自のカスタムプロバイダーを追加することもできます。
Laravel 5は、artisanと呼ばれる新しいコマンドラインインターフェイスを導入します。これは、一般的なタスクに多くの有用なコマンドを提供します。 Artisanを使用して、ボイラープレートコードを生成し、データベースの移行を実行し、ローカル開発サーバーを開始することもできます。
Laravel 5.0では、新しいディレクトリ構造、ルーティングの改善、環境構成処理の改善、SocialIte、Elixir、Schedulerなどの新しいコンポーネントなど、いくつかの新機能を紹介します。また、Artisanという新しいコマンドラインインターフェイスも紹介します。
Laravel 5でデータベースの移行を処理する方法以上がLaravel4からLaravel5へ - シンプルなアップグレードガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。