ホームページ >バックエンド開発 >PHPチュートリアル >Laravel 5.0リリース、新バージョンの機能詳細解説、laravel5.0_PHPチュートリアル

Laravel 5.0リリース、新バージョンの機能詳細解説、laravel5.0_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:07:23859ブラウズ

Laravel 5.0 リリース、新バージョンの機能詳細説明、laravel5.0

翻訳注: Laravel 5.0 をずっと楽しみにしていて、以前は今年 1 月にリリースされると言われていましたが、1 月から公式 Web サイトとブログを更新していましたが、まだリリースされていません。数日前、公式 Web サイトのドキュメントが 5.0 に切り替わったことを確認しました。特に、スケジュールされたタスク キューとフォーム リクエストの機能が多く含まれています。アップデートの手順を読むと、試してみたくなりました。もちろん、Laravel フレームワークが好きなすべての友人にこのバージョンによってもたらされるエキサイティングな変更を感じてもらえることを願って、ようやく時間をかけて公式の新機能説明ドキュメントを翻訳しました。 Phalcon のようなパフォーマンスが必要な場合は、それは間違いなく必要なものではありません。仮想ホストが php 5.4 をサポートしていないために Laravel を楽しめない場合は、仮想ホストを捨ててみてはいかがでしょうか。 Alibaba Cloud Tencent Cloud Linode... VPS の選択肢が多すぎない...

Laravel 5.0

Laravel 5.0 では、新しいプロジェクト ディレクトリ構造が導入され、Laravel でのアプリケーションの作成がより容易になりました。バージョン 5.0 では、最初から最後まで新しい PSR-4 自動読み込み標準が採用されています。 :

ディレクトリ構造

以前のバージョンの app/models ディレクトリは完全に削除され、コードをアプリ ディレクトリに直接配置できるようになり、このディレクトリ内のすべてのコードはデフォルトでアプリの名前空間に編成されます。この名前空間は Artisan コマンドを通じて追加できます。 app:変更する名前。

コントローラー、ミドルウェア、リクエスト (Laravel 5.0 で追加された新しいクラス) は、アプリケーションの HTTP トランスポート層に関連するすべてのクラスであるため、app/Http ディレクトリに編成されます。以前とは異なり、すべてのルーティング フィルターが 1 つのフィルターに入れられました。ファイルの下では異なります。現在、すべてのミドルウェア (前のルート フィルターと同様) は独自のクラス ファイルに保存されています。

新しいバージョンでは、以前の 4.x バージョンの app/start ファイルを置き換える app/Providers ディレクトリが追加され、これらのサービス プロバイダーは、エラー処理、ログ記録、ルート読み込みなど、アプリケーションのさまざまな起動方法を提供します。もちろん、追加のサービスプロバイダーを作成することもできます。

アプリケーションの言語ファイルとビューはリソース ディレクトリに移動されました。

契約

Laravel のすべての主要コンポーネントは、illuminate/contracts リポジトリに保存されているインターフェイスを実装しています。このリポジトリには追加の依存関係はなく、このような便利な一元的なインターフェイスのセットを使用して、Laravel ファサードの選択と変更を簡単に設定できます。デカップリングと依存関係の注入

契約の詳細については、その完全なドキュメントをご覧ください。


ルートキャッシュ

アプリケーションがさまざまなコントローラー ルートで構成されている場合は、新しい Artisan コマンド Route:cache を使用すると、ルートの登録速度が大幅に向上します。これは、100 を超えるルートを持つアプリケーションで特に効果的であり、速度を大幅に向上させることができます。アプリケーション全体のルーティング部分。

ルートミドルウェア

4.0 スタイルのルーティング「フィルター」に基づいて、新しいバージョン 5.0 では、Laravel 独自の「認証」と「フィルター」がミドルウェアに変換され、単一のインターフェースですべてのタイプのフィルターを提供します。リクエストを簡単に確認して拒否します。

ミドルウェアの詳細については、その完全なドキュメントをご覧ください。

コントローラーメソッドインジェクション

既存のコンストラクターの注入に加えて、新しいバージョンでは、コントローラー メソッドの依存関係に制約を入力することもできます。ルートに他のパラメーターが含まれている場合でも、IoC コンテナーは自動的に依存関係を注入します。


コードをコピーします コードは次のとおりです:
public function createPost(Request $request, PostRepository $posts)
{
//
}


認定足場
ユーザー登録、認証、およびパスワード リセット コントローラーがバージョン 5.0 の Web サイト フレームワークに組み込まれています。コントローラーに加えて、Web サイトの初期フレームワークに保存される単純なビューもあります。また、「users」テーブルの移行ファイルも含まれており、開発者は認証関連のページに auth/login および auth/registrar サービスの Responsible 経由でアクセスできます。ユーザーの作成と認証を処理するため。

イベントオブジェクト

新しいバージョンでは、イベントを文字列ではなくオブジェクトとして定義できます。以下の例を参照してください。


コードをコピーします

コードは次のとおりです:

クラス PodcastWasPurchased {

公開 $ポッドキャスト;

パブリック関数 __construct(Podcast $podcast)
{
$this->podcast = $podcast;
}

}

このイベントは次のように呼び出すことができます:

イベント::火災(新しいポッドキャストが購入されました($podcast));
もちろん、イベント ハンドラーが受け取るのはデータ リストではなく、イベント オブジェクトです:

コードをコピーします コードは次のとおりです:

クラス ReportPodcastPurchase {

パブリック関数ハンドル(PodcastWasPurchased $event)
{
//
}

}

イベントの詳細については、完全なドキュメントをご覧ください。

コマンド/キュー

バージョン 4.0 でサポートされているタスク キューに基づいて、5.0 ではタスク キューを単純なコマンド オブジェクトとして定義することができます。これらのコマンドは app/Commands ディレクトリに保存されます。
簡単なコマンドの例を示します。

コードをコピーします コードは次のとおりです:

class PurchasePodcast extends Command 実装 SelfHandling, ShouldBeQueued {

SerializesModel を使用します;

保護された $user、$podcast;

/**
* 新しいコマンドインスタンスを作成します
*
* @return void
​​*/
パブリック関数 __construct(ユーザー $user, ポッドキャスト $podcast)
{
$this->user = $user;
$this->podcast = $podcast;
}

/**
* コマンドを実行
*
* @return void
​​*/
パブリック関数ハンドル()
{
// ポッドキャストビデオを購入するロジックを処理します

イベント(新しいポッドキャストが購入されました($this->ユーザー, $this->ポッドキャスト));
}

}

Laravel のベースコントローラーは新しい DispatchesCommands 機能を使用しており、コマンドの実行を簡単に監視できます:

$this->dispatch(new PurchasePodcastCommand($user, $podcast));
もちろん、コマンドはタスク キュー (非同期実行) だけでなく、同期タスクにも使用できます。実際、アプリケーションで実行する必要がある複雑なタスクをコマンドにカプセル化することは良い選択です。情報を参照すると、コマンド ブリッジの詳細なドキュメントを表示できます。

データベースキュー

Laravel の新しいバージョンにはデータベース キュー ドライバーが含まれており、追加のパッケージをインストールする必要なく、シンプルなローカル キュー ドライバーを提供します (注釈: たとえば、トランザクションをサポートしていないデータベースがトランザクションのようなデータ操作を実行できるようにします)。

Laravelのスケジュールされたタスク

これまで、開発者はコンソール タスクを定期的に実行するために Cron タスクに依存する必要があり、スケジュールされたタスクが Web サイトのソース コードに含まれておらず、SSH 経由でサーバーにログインする必要があったため、非常に不便でした。 Cron タスクを追加するには、Laravel のスケジュールされたタスクの新しいバージョンを使用すると、開発者は Laravel フレームワーク内でスケジュールされた実行コマンドを定義できるようになり、サーバー上で合計の Cron タスクを定義するだけで済みます。

例:


コードをコピーします コードは次のとおりです:
$schedule->command('artisan:command')->dailyAt('15:00');


同様に、スケジュールされたタスクの詳細については、完全なドキュメントを確認してください。

ティンカー/サイシュ

php tinker コマンドは、新しいバージョンでは Justin Heleman によって開発された Psysh を使用します。Laravel 4.0 の Boris が気に入った場合は、間違いなく Psysh を気に入るはずです。Psysh は Windows と完全に対応しています。前と同じ:


コードをコピーします コードは次のとおりです:
php 職人いじり


DotEnv Laravel 5.0 では、Vance Lucas によって実装された DotEnv が、以前のバージョンのネストされた構造と混乱を招く環境設定ディレクトリを置き換えます。Laravel 5.0 では、さまざまなオペレーティング環境の検出と区別が簡単になります。詳細については、完全な構成ドキュメントを参照してください。

Laravelエリクサー Jeffrey Way が提供する Laravel Elixir は、リソース ファイルをマージしてコンパイルするための簡潔でわかりやすいインターフェイスを提供します。これまで Grunt や Gulp の設定に圧倒されていたとしても、Elixir を使用すれば簡単に Gulp を使用してコンパイルできるようになります。 Less、Sass、CoffeeScript ファイルのテストも実行できます。

Elixir について詳しくは、完全なドキュメントをご覧ください。

Laravel 社交家

Laravel Socialite は、Laravel 5.0 以降のオプションのパッケージとのみ互換性があります。現在、Socialite は Facebook、Twitter、Google、Github をサポートしています。


コードをコピーします

コードは次のとおりです: パブリック関数 redirectForAuth()
{
リターン Socialize::with('twitter')->redirect();
}

パブリック関数 getUserFromProvider()
{
$user = Socialize::with('twitter')->user();
}


そのため、OAuth 認証フローの作成に多くの時間を費やす必要はなくなり、完全なドキュメントにはこのオプションのパッケージに関するすべての詳細が含まれており、数分で簡単に完了できます。
フライシステムの統合

Laravel の新しいバージョンには、強力な Flysystem ファイル処理静的ライブラリも含まれています。このライブラリを通じて、開発者は簡単に開始し、まったく同じ API を使用して、たとえばファイルをローカルの Amazon S3 または Rackspace ファイル ストレージに実装できます。 Amazon S3、これと同じくらい簡単です:

コードをコピーします

コードは次のとおりです: Storage::put('file.txt', 'contents');
Laravel Flysystem の統合について詳しくは、完全なドキュメントをご覧ください

フォームリクエスト

Laravel 5.0 では、IlluminateFoundationHttpFormRequest クラスから拡張された新しいフォーム リクエストが導入されています。これらのリクエスト オブジェクトをコントローラー メソッド インジェクションと組み合わせて、ユーザー入力を検証する新しいメソッドを提供します。 以下に、FormRequest の簡単な例を示します。

コードをコピーします


コードは次のとおりです:

名前空間 AppHttpRequests; class RegisterRequest extends FormRequest {
パブリック関数ルール()
{
戻る [
'email' => 'required|email|unique:users',
'パスワード' => '必須|確認済み|分:8',
];
}

パブリック関数 authorize()
{
true を返します;
}

}


対応する FormRequest 拡張クラスを定義した後、コントローラー メソッドで型ヒントを取得できます:


コードをコピーします

コードは次のとおりです:
パブリック関数 register(RegisterRequest $request) { var_dump($request->input());
}


Laravel の IoC コンテナがメソッド変数の型を認識すると、FormRequest のインスタンスが自動的に挿入されるため、リクエストは自動的に検証されます。これは、コントローラーが呼び出されたときに入力データが検証されているため、安全に使用できることを意味します。それだけでなく、リクエストが検証できなかった場合、システムは自動的に事前定義されたルートにリダイレクトし、エラー メッセージ (必要に応じてセッションに書き込まれるか、JSON 形式に変換されます) を含めます。 .) フォームの検証がかつてないほど簡単になりました。FormRequest の検証の詳細については、ドキュメントを参照してください。


コントローラーは簡単な検証をリクエストします

Laravel 5.0 のコントローラー基本クラスには ValidatesRequests トレイトも含まれており、このトレイトはリクエストを検証するための単純な検証メソッドを提供します。FormRequests がアプリケーションにとって重すぎる場合は、この軽量のバージョンを使用できます。

コードをコピーします

コードは次のとおりです:


パブリック関数 createPost(Request $request)
{
$this->validate($request, [
'タイトル' => '必須|最大:255',
'本文' => '必須',
]);
}

検証が失敗すると、システムは例外をスローし、対応する HTTP リクエストが自動的にブラウザに送信され、リクエストが AJAX を使用して開始された場合、Larave は自動的に検証を送信します。 JSON 形式の情報のエラーです。

FormRequest の検証の詳細については、ドキュメントを確認してください。

真新しい発電機

新しいデフォルトのアプリケーション構造の生成を容易にするために、新しい Artisan 生成コマンドがフレームワークに追加されました。PHP の Artisan リストを通じて詳細なコマンドを表示できます。

構成キャッシュ

config:cache コマンドを使用すると、すべての設定項目をキャッシュ ファイルに書き込むことができます。

Symfony VarDumper

デバッグ用の変数情報を出力するための補助メソッド dd が新しいバージョンでアップグレードされ、強力な Symfony VarDumper を使用して、色の強調表示と配列の折りたたみ機能を使用してデバッグ情報を出力できます。


コードをコピーします コードは次のとおりです:
dd([1, 2, 3]);


http://www.bkjia.com/PHPjc/955981.html

tru​​ehttp://www.bkjia.com/PHPjc/955981.html技術記事 Laravel 5.0 の新バージョンの機能の詳細な説明、laravel5.0 の翻訳注釈: Laravel 5.0 は以前から延期されており、今年 1 月にリリースされる予定でした。 1月から公式サイトをリニューアルしました...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。