ホームページ > バックエンド開発 > PHPチュートリアル > Laravel 5.2.23 新機能プレビュー

Laravel 5.2.23 新機能プレビュー

WBOY
リリース: 2016-06-20 12:35:00
オリジナル
1123 人が閲覧しました

この記事の公開時点で、Laravel には Github に 911 人の寄稿者がおり、そのうちの何人かは毎日フレームワークに更新を追加するのに協力しています。 。以下は、Laravel 5.2.23に追加される新機能のいくつかの概要です。

1. in_array() 検証ルール

最近、私はプロジェクト内の多くのコードをほんの数行のコードに置き換えました。キーの値が別の関連キーに含まれているかどうかを確認するのに役立つ新しいルールが 5.2.23 に追加されます。

Validator::make(    [        'devices' => [['user_id' => 1], ['user_id' => 2]],        'users' => [['id' => 1, ['id' => 2]]]    ],    ['devices.*.user_id' => 'in_array:users.*.id']);
ログイン後にコピー

このコードは、user_id の値がすべて users にあることを確認します。

2. Arr::first() と Arr::last() はオプションのコールバック関数を提供します

以前のバージョンでは、コールバック関数は 2 番目のパラメーターとして必要でしたが、次のようになります。 5.2.23 のオプションのパラメータ。

$array = [100, 200, 300];// (NEW) This will return 100Arr::first($array); /** same for **/ array_first($array);// (NEW) This will return 300Arr::last($array); /** same for **/ array_last($array);// (You still can) do this and return 200Arr::first($array, function ($key, $value) {    return $value >= 150;});
ログイン後にコピー

3. 複数のミドルウェアを一度に指定

コントローラーにミドルウェアを追加するときに、1 つのステートメントで複数のミドルウェアを登録できるようになりました。

$this->middleware(['auth', 'subscribed'], ['only' => ['getCandy']]);
ログイン後にコピー

4. 新しいコマンド @php、@endphp、@unset が Blade に追加されました

@php コマンドを使用すると、次のような PHP ステートメントを記述できます。 >

@php($count = 1)@php(++ $count)
ログイン後にコピー
@unset() は実際には unset() のパッケージです:
@php    $now = new DateTime();    $environment = isset($env) ? $env : "testing";@enphp
ログイン後にコピー

5. Blade コア命令を書き換える機能
@unset($count)
ログイン後にコピー

5.2 より前ではできませんでした。 .23 Bladeを拡張してコア命令を書き換えると、任意のコア命令を書き換えられるようになりました。

6. Blade ディレクティブのコンパイルを回避する

Blade ディレクティブの前に @ 記号を追加して、ディレクティブのコンパイルを回避できるようになりました。

7. SparkPost の新しいメール ドライバー
// output: <?php continue; ?>@continue// output: @continue@@continue
ログイン後にコピー

8. 新しいスケジュール コマンド monthOn()

9. 新しい app()-> ) メソッド
$schedule->call(function () {    DB::table('shopping_list')->delete();})->monthlyOn(4, '12:00');
ログイン後にコピー

10. クエリ ビルダーを使用して MySQL 5.7 をクエリし、よりスムーズに JSON フィールドを生成します。
// Instead of thisif (app()->getLocale() == 'en')// You can do thatif (app()->isLocale('en'))
ログイン後にコピー

MySQL 5.7 のリリース後、Laravel に新しい JSON 型フィールドが導入されました。 5.2.23 では、以前と同じくらい迅速に Json フィールドをクエリできます。

users テーブルに次の値を持つ JSON 型名列があるとします。

次の構文を使用して値をクエリできます:
{"en":"name","ar":"nom"}
ログイン後にコピー

11. テスト ヘルパー メソッド seeElement() および dontSeeElement()
User::where('name->en', 'name')->get();// You may dive deep in the JSON string using the `->` operator.User::where('contacts->phone->home', 1234);
ログイン後にコピー

次の要素があるとします:

次のテスト メソッドを使用できます:
<image width="100" height="50">
ログイン後にコピー

12. 隠し特典 #1
$this->seeElement('image', ['width' => 100, 'height' => 50]);$this->dontSeeElement('image', ['class' => 'video']);
ログイン後にコピー

これはすでにできることをご存知ですか?

13. 隠れたメリット #2
User::whereNameAndEmail('jon', 'jon@theWall.com')->first();User::whereNameAndEmailOrPhone('jon', 'jon@theWall.com', '123321')->first();DB::table('users')->whereEmailOrUsername('mail@mail.com', 'themsaid')->first();
ログイン後にコピー

翻訳元: スペックスのブログからの転載元を明記してください。
// Instead of this:if(!$item){    abort(404);}// You can do that:abort_unless($item);// You may also have something like this:abort_if($item->is_hidden);
ログイン後にコピー

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート