Laravelの5.8エキサイティングな新機能をチェックアウト

公開: 2022-01-02

2011年にテイラーオトウェルによって作成された優れたPHPフレームワークであるLaravelは、すべてのPHPフレームワークの中で最高です。 アクセス可能で、強力で、堅牢で、いくつかの素晴らしいアプリケーションを織り交ぜています。

このPHPフレームワークは、開発者が複雑な機能を抽象化するMVCパターンを実装するのを容易にします。 更新は必須であり、アプリケーションのライフサイクルを改善するためだけのものです。

Laravelは大まかに5〜6か月ごとにアップデートをリリースし、今年も5.8バージョン(19年3月)をリリースしたため、使用できません。 Laravel開発者を雇って、できるだけ早くタスクを完了することができます。

以前のバージョンからの継続的な改善により、開発者にとってエキサイティングな機能のいくつかがもたらされました。 この新しいバージョンが提供する驚くべき機能のいくつかを覗いてみましょう

  • 自動化されたポリシー解決
  • Carbon2.0のサポート
  • 持っている-Eloquentの関係を介して
  • トークンの保護とハッシュ
  • キャッシュTTL
  • スケジューラのタイムゾーン構成
  • 職人::コールの改善
  • モック/スパイテストヘルパーメソッド
  • 職人サーブの改善
  • 高次雄弁な方法
  • dotenv 3.0
  • 新しいエラー処理テンプレート

自動化されたポリシー解決:

以前のLaravelバージョンでは、従来とは異なる場所にモデルまたはポリシーがあり、AuthServiceProviderクラスに登録する必要がありました。 このバージョンでは、モデルとポリシーは従来の場所に保存されます。

モデルの認証ポリシーを手動で登録する必要はありません。 この新しいバージョンは、標準のLaravel命名規則に従ってポリシーを自動的に検出します。

登録するポリシーが他の場所にある場合は、を使用してコールバックを登録します。

Gate :: guessPolicyNamesUsing

このメソッドは、AuthServiceProviderのブースメソッドから次のように呼び出すことができます。

 Illuminate \ Support \ Facades \ Gateを使用します。
Gate :: guessPolicyNamesUsing(function($ modelClass){
//ポリシークラス名を返します...
});

Carbon 2.0のサポート:

開発者にとって朗報です。これで、アプリケーションでデフォルトとしてCarbonImmutableを使用できるようになります。

このパッケージは、PHPのDate and Timeクラスを拡張し、Date andTimeの操作を非常に簡単にします。 クラスの選択はユーザーによって異なります。

HasOneThrough Eloquent関係:

この新機能は、Railsが提供する機能とほぼ同じです。 例を見てみましょう。サプライヤ、アカウント、アカウント履歴モデルの3つのモデルがあるとします。 簡単に言うと、サプライヤにはアカウントがあり、アカウントには1つのアカウント履歴があります。

以前のバージョンでは、以前は次のように記述していたアカウント履歴を取得していました:$ supplyer-> account-> accountHistory。 しかし今、この雄弁な関係を通して、あなたはすぐに書くでしょう

$ history = $ supply-> accountHistory

アカウントモデル全体で。

 パブリック関数accountHistory()
{{
$ this-> hasOneThrough(AccountHistory :: class、Account :: class);を返します。
}

トークンガードトークンハッシュ:

トークンガード機能により、APIトークンをSHA-256ハッシュとして保存できるようになりました。 以前は、APIのトークンはプレーンテキストトークンとして保存されていましたが、現在は改善されています。 これにより、セキュリティが強化され、生成されたトークンの保存が強化されました。

キャッシュTTL:

分からのキャッシュ設定が秒に変更されました。 この改善は、有効期限をより正確かつきめ細かく制御するために行われます。 この機能は、PSR-16キャッシングライブラリ標準に準拠しています。

さらに、アプリケーションのキャッシュを数秒に更新することを常に忘れないでください。

 // Laravel5.7-5分間アイテムを保存します...
Cache :: put( 'foo'、 'bar'、10);

// Laravel5.8-5秒間アイテムを保存します...
Cache :: put( 'foo'、 'bar'、10);

スケジューラのタイムゾーン構成:

この新しいバージョンのLaravelでは、タイムゾーン方式を使用して、リストされたタスクのタイムゾーンをカスタマイズできます。

 $ schedule-> command( 'run')
-> daily()
-> at('15:00 ')
-> timezone( 'アメリカ/シカゴ');

以前のバージョンでは、スケジュールされたすべてのタスクに対してこれを実行する必要があったため、これは面倒なタスクと見なされていました。 ただし、これにより、app / Console /Kernel.phpファイルでScheduleTimezoneというメソッドを定義するだけで済みます。

変更は、リスト内のすべてのスケジューラーに添付されます。

 / **
*スケジュールされたイベントにデフォルトで使用されるタイムゾーンを取得します。
*
* @return \ DateTimeZone | string | null
* /
保護された関数scheduleTimezone()
{{
'アメリカ/シカゴ'を返します。
}

職人の呼び出しの改善:

この新しいバージョンでは、Artisan :: callメソッドを使用してArtisanコマンドを作成できます。 コマンドは、以下に示すように、単一の文字列の配列として渡すことができるようになりました。

 Artisan :: call( 'migrate:install --database = foo');

職人のサーブの改善:

以前のバージョンでは、アプリケーションが実行される8000でデフォルトのポートが割り当てられていました。 また、このポートで他のコマンドが実行されている場合、新しいコマンドの提供に失敗する可能性があります。

新しいバージョンは最大8009のポートをスキャンし、開発者が複数のアプリケーションを同時に実行できるようにします。

モック/スパイテストヘルパーメソッド:

モックテストは、開発者がコードをよりクリーンで読みやすくするのに役立つだけです。 モックメソッドとスパイメソッドが基本のLaravelテストケースクラスに追加されます。 このメソッドは、コンテナでモックされるクラスを自動的にバインドします。

 パブリック関数testBasicTest()
{{
$ this-> mock(TransactionService :: class、function($ mock){
$ mock-> shouldReceive( 'find')-> once()-> with(1)-> andReturn(['id' => 1、 'name' => 'foo'])
});
}

高次またはどこで雄弁な方法:

以前のバージョンでは、クロージャコールバックで「or」を使用してスコープクエリを定義していました。 「高次」またはWhereメソッドの導入により、クロージャを使用せずに、これらのスコープクエリをまとめて簡単にチェーンできます。 例えば:

 $ users = App \ User :: emailVerified()-> orWhere-> active()-> get();

dotenv 3.0:

プロジェクトの新しい.envファイルを管理するために、Laravel5.8は新しいdotenv3.0をサポートします。 この新しいdotenv3.0は、複数行の文字列と文字列の末尾の空白をサポートします。 この機能は、セキュリティのために複数行のAPIキーが必要な場合に非常に役立ちます。

新しいエラーページテンプレート:

新しいエラーページは、さまざまなWebサイトやアプリに適した非常にシンプルなデザインで導入されています。 エラーページをカスタマイズしたり、以前に設計されたエラーページをインポートしたりすることも可能です。

アプリケーション開発には多くのLaravel開発会社があります。 この新しいバージョンは、いくつかの驚くべき機能の宝庫です。 上記のコンテンツには、新しいLaravel5.8バージョンで拡張された注目すべき改善点と機能の一部がリストされています。

一部の機能は、Webサイトにスムーズに統合して、より機能的でユーザーフレンドリーにすることができます。

実行中のアプリケーションをLaravelバージョン5.8にアップグレードするには、公式サイトでアップグレードガイドとリリースノートを確認してください。