Laravel PR 流し読み(2021/07/24)

まずはこれ。

[9.x] TrimString can now remove NBSP by allowing · Pull Request #38117 · laravel/framework · GitHub

 

リクエストのNBSPを自動的にトリムできるようにしてくれるようです。ただし9.xからなので8.x系を利用している間は恩恵をうけることはできなさそうです。

下記で対応できるって内容になっているのですが、軽く調べて見た感じどこ見てもお内容な処理しているところが見つからなかったので大丈夫なのか気になるところ。

trim($value, " \t\n\r\0\x0B")

一応php.netの参考例はリンク貼っとく

www.php.net

// UTF encodes it as chr(0xC2).chr(0xA0)
$converted = trim($converted,chr(0xC2).chr(0xA0)); // should work

 

マージ済みはこれで終わりなんだけど、昨日マージされてたやつci落ちてるやつマージされてたのでci通ってなくてもマージできるんだなーという学びがあった。

[8.x] Support a proxy URL for mix hot by stevesweets · Pull Request #38118 · laravel/framework · GitHub

Laravel PR 流し読み(2021/07/23)

まずはこれ。

[8.0] Fix return type in PruneCommand by JayBizzle · Pull Request #38107 · laravel/framework · GitHub

 

PruneCommandのmodelsメソッドの返り値の PHPDocs の修正です。

array → Collection

 

つぎはこれ。

[8.0] Developer friendly message if no Prunable Models found by JayBizzle · Pull Request #38108 · laravel/framework · GitHub

 

メッセージをわかりやすく出力するようになりました。

 

つぎはこれ。

[6.x] Fix signed routes with `expires` parameter by sebdesign · Pull Request #38111 · laravel/framework · GitHub

 

expiresパラメータをつけて、署名されたURLを生成すると有効期限が破壊されるようです。サーバ側で発行するのでおかしなことをしていなければ問題ないと思いますが、いい変更だと思います。バグじゃないって言ってる人いるけどどういう意味だったのかよくわからない。6.xにマージした内容なので8.xに入るのだろうか?今見た感じ入ってなさそうだった。どのタイミングで取り込まれるのだろう?

framework/UrlGenerator.php at 8.x · sebdesign/framework · GitHub

 

つぎはこれ。

[8.x] Password Validator should inherit custom error message and attribute by jochensengier · Pull Request #38114 · laravel/framework · GitHub

 

Password Validator にカスタムメッセージとカスタム属性が追加されたようです。正直使い所がよくわかってなかったので調べた。

[8.x] Adds password rule by nunomaduro · Pull Request #36960 · laravel/framework · GitHub

4月頃にこのPRで追加されたやつでした。下記のようなことができるみたいで割と便利そう。

        $request->validate([
            'name' => 'required|string|max:255',
            'email' => 'required|string|email|max:255|unique:users',
            'password' => ['required', 'confirmed', Password::min(8)
                    ->mixedCase()
                    ->letters()
                    ->numbers()
                    ->symbols()
                    ->uncompromised(),
            ],
        ]);

 つぎはこれ。

[8.x] Support a proxy URL for mix hot by stevesweets · Pull Request #38118 · laravel/framework · GitHub

 

ngrokとかを利用しているときに Laravel Mix の URLを プロキシ先のものに変更できるENV が追加されたようです。shopifyの開発してるときに便利って書いてあった。

Laravel PR 流し読み(2021/07/22)

マージされたPRはなかった。

 

クローズされた中で気になったやつを見ておく。

 

[8.x] Create helper class In eloquent to making new functions to avoid the repetition of the code by AbdlrahmanSaberAbdo · Pull Request #38103 · laravel/framework · GitHub

 

eloquentにヘルパークラスを作成しようとしていたみたいです。今はマージする気がないみたいでパッケージとして提供したらどう的な雰囲気を感じた。ただ主張してる内容的にパッケージにすることはないと思う。

Laravel PR 流し読み(2021/07/21)

まずはこれ。

[8.x] Change cache key column from unique to primary by Triplkrypl · Pull Request #38076 · laravel/framework · GitHub

 

Schema定義のときにプライマリーキーではなくユニーク成約になっていたようです。

 

 

つぎはこれ。

[8.x] ImplicitAttributes are included in getRules() already by themsaid · Pull Request #38080 · laravel/framework · GitHub

 

Laravel PR 流し読み(2021/07/19) - toganaのブログで記載したバリデーションのとこで array_merge してるところ getRules に含まれているので不要だったって修正です。

 

つぎはこれ。

[8.x] Remove PHPUnit\Util\InvalidArgumentHelper by FrontEndCoffee · Pull Request #38081 · laravel/framework · GitHub

 

PHPUnit 7.x のサポートが終わっているのでチェックしなくて良くなったロジックが残っていたので削除したようです。

 

つぎはこれ。

[8.x] Allow shift() and pop() to take multiple items from a collection by edgrosvenor · Pull Request #38093 · laravel/framework · GitHub

 

コレクションの shift と pop が引数を与えることで複数の値を取得できるようになりました。ドキュメントに関しては別のPRで記載するとのことなので明日紹介できそうです。

 

Laravel PR 流し読み(2021/07/20)

まずはこれ。

[8.x] Ability to return the default value of a request whenHas and whenFilled methods by olekjs · Pull Request #38060 · laravel/framework · GitHub

 

whenHas と whenFilled にデフォルト値を設定できるようになったようです。

 

つぎはこれ。 

[8.x] Fix PHPDocs of query builder by Kolyunya · Pull Request #38061 · laravel/framework · GitHub

 

以前のPRで追加されたPHPDocsの修正です。

 

つぎはこれ。

[6.x] Remove hardcoded Carbon reference from scheduler event by axlon · Pull Request #38063 · laravel/framework · GitHub

 

テストの関係上?コードを見る限りCarbonを利用しないように変更したみたいです。しかしなぜか6.x系のみに取り込まれていて8.x系ではCarbonを引き続き利用しているようでした。

framework/Event.php at 8.x · laravel/framework · GitHub

 

このチェンジは意味がわからないので理解できる方いたら教えていただけると嬉しいです。

 

つぎはこれ。 

[9.x] Update PHP8 string function by shuvroroy · Pull Request #38071 · laravel/framework · GitHub

 

下記のPRでも出ていたが Laravel 9.x は PHP 7.4系以下を全てサポートしないのでPHP8の書き方にリファクタされました。

[9.x] Update to Symfony v6 and drop PHP 7.4 support by driesvints · Pull Request #37941 · laravel/framework · GitHub

 

Laravel PR 流し読み(2021/07/19)

なるようになるブログのrailsのコミットログを流しよみしてるのよいなと思ったので僕も laravel の PR を雑に読んでいこうかなーと思った。

y-yagi.hatenablog.com

 

今日マージされたものを見ていく感じでやっていこうと思う(全部カバーできないかもしれない)。

 

まずはこれ。

[8.x] ErrorException: Undefined array key "exception" by kekstoaster · Pull Request #38059 · laravel/framework · GitHub

 

やっていることは単純に isset で存在確認を行うようにしたようです。

下記のリンクで最新の PHP でだけ Warning になることが確認できたのでまあそういう修正。

https://3v4l.org/hkUPE

 

次はこれ。

[8.x] Allow eloquent model type in be/actingAs by michael-rubel · Pull Request #38055 · laravel/framework · GitHub

 

actingAs と beメソッドの PHPDoc がおかしいというものだったようです。

※ 今書いてる途中で Revert された。

コメントを見る限り注釈付きのジェネリックで修正できそう的なことらしい。

larastan の例を上げてくれているがよくわからんかった。知っている人いたらコメントほしい。

 

次はこれ。

[8.x] Fix unvalidated array keys without implicit attributes by bonroyage · Pull Request #38052 · laravel/framework · GitHub

 

Ver 8.45で追加された機能の修正のようです。

バリデーション 8.x Laravel

zenn.dev

 

次はこれ。

[8.x] Display unexpected validation errors when asserting status by jessarcher · Pull Request #38046 · laravel/framework · GitHub

 

内容を読んだ感じだとこれの拡張

[8.x] Track exceptions and display them on failed status checks for dx by taylorotwell · Pull Request #38025 · laravel/framework · GitHub

 

テスト記載しててよくわからんエラーがでたときにお世話になってた $this->withoutExceptionHandling(); を記載しなくてもわかりやすくなる見たい。

 

次はこれ。

[8.x] Fix PHPDocs for JSON resources by Kolyunya · Pull Request #38044 · laravel/framework · GitHub

 

PHPDocs の修正。