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

Laravel 5.0リリース、新バージョンの機能を詳しく解説_PHPチュートリアル

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

Laravel 5.0リリースの新バージョン機能を詳しく紹介します

この記事では主にLaravel 5.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 の主な新機能は次のとおりです。

ディレクトリ構造

以前のバージョンの 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));
もちろん、イベント ハンドラーが受け取るのはデータ リストではなく、イベント オブジェクトです:

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


クラス 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->ポッドキャスト = $ポッドキャスト;
}

/**
* コマンドを実行
*
* @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 は、完全で使いやすい OAuth ソリューションを提供する Laravel 5.0 以降のオプション パッケージとのみ互換性があります。現在、Socialite は次のようになります。

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

パブリック関数 redirectForAuth()

{

return 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 {

パブリック関数ルール()
{
戻る[
'電子メール' => '必須|電子メール|一意:ユーザー',
'パスワード' => '必須|確認済み|分: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/956404.html

www.bkjia.com

http://www.bkjia.com/PHPjc/956404.html技術記事 Laravel 5.0 リリースの新バージョン機能を詳しく紹介します。この記事では主に、ディレクトリ構造、コントラクト、ルーティングキャッシュ、ルーティング中間、コントロールについて詳しく説明します
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。