[Laravel] 7.23.0がリリースされました

Laravel Authenticate Event
laravel/frameworkのv7.23.0がリリースされました。追加された機能について確認します。 BladeのSlotディレクティブに動的な変数が渡せるようになりました (#33724) 属性値の先頭に:をつける事で変数を渡せるようになりました。 <x-slot :name="$foo"> {{-- ... --}} </x-slot> 通知時にメールを送信する場合にテキストメールを同時に送信できるようになりました (#33725) HTTP::fake()にsinkオプションが追加されました (#33720, @fba984b) レスポンスの内容をsink()メソッドの引数に渡したファイルに書き込みます。 クエリビルダにwhereBetweenColumnsに対応したメソッドが追加されました (#33728) 以下のメソッドが追加されました。 whereBetweenColumns orWhereBetweenColumns whereNotBetweenColumns orWhereNotBetweenColumns 詳しい変更については以下を確認してください。 Release v7.23.0 · laravel/framework · GitHub

[Laravel] 7.21.1がリリースされました

Laravel Authenticate Event
laravel/frameworkのv7.21.1がリリースされました。追加された機能について確認します。 データベースマイグレーション関連でnullOnDelete()メソッドが追加されました (#33551) 以前から利用可能であった$this->onDelete('set null')のエイリアスです。 また、v7.21.0にてcascadeOnUpdate()メソッドも追加されています。 アプリケーションにgetFallbackLocale()、setFallbackLocale()メソッドが追加されました (#33551) 詳しい変更については以下を確認してください。 Release v7.21.1 · laravel/framework · GitHub

[Laravel] 7.19.1がリリースされました

Laravel Authenticate Event
laravel/frameworkのv7.18.0がリリースされました。追加された機能について確認します。 スケジュールで使用できるパターンが追加されました (#33393) 以下の3つのメソッドが追加されました。 everyTwoHours() everyThreeHours() everyFourHours() everySixHours() それぞれ2時間毎、3時間毎、4時間毎、5時間毎に実行するメドッドです。 $schedule->job(SyncSomething::class)->cron('0 */2 * * *'); // once every 2 hours // or, with this PR $schedule->job(SyncSomething::class)->everyTwoHours(); APIリソースクラスで明示的に値を追加できるようになりました (#33422 ) whenLoaded()と似ていますが、特定の属性値が存在する場合に、その値もしくは指定の値をレスポンスに含むことができるようになりました。 この機能を実現するために、モデルクラスが使うHasAttributesトレイトにhasAppended()メソッドが追加されました。 第2引数には存在する場合の戻り値、第3引数には存在しなかった場合の戻り値の文字列、もしくはコールバックを指定します。 この2つの引数は省略可能です。 // Resource public function toArray($request) { return [ 'id' => $this->id, 'name' => $this->name, 'email' => $this->email, 'is_subscribed' => $this->whenAppended('is_subscribed'), 'created_at' => $this->created_at, 'updated_at' => $this->updated_at, ]; } // Response return new UserResource($user->append('is_subscribed')); ScheduledTaskFailedイベントが追加されました (#33427) Illuminate\Support\Stringableクラスにwhen()メソッドが追加されました (#33455) 以下の例はユーザーの認証状態からコンテンツの一部を制限する例です。 $blogContent = 'Laravel Factories Reloaded is a package by Christoph Rumpel that generates class-based model factories that you can use instead of the factory files Laravel provides'; // Before $stringable = Str::of($blogContent); if(!Auth::check()){ $stringable->limit(20,'.....') ->append('To Continue reading ') ->append(new HtmlString('<a href="#">Get a Subscription</a>')); } $stringable->__toString(); // After Str::of($blogContent) ->when(!Auth::check(),function($stringable){ return $stringable->limit(20) ->append('To Continue reading ') ->append(new HtmlString('<a href="#">Get a Subscription</a>')); }) ->__toString(); 詳しい変更については以下を確認してください。 Release v7.18.0 · laravel/framework · GitHub

[Laravel] 7.19.0がリリースされました

Laravel Authenticate Event
laravel/frameworkのv7.18.0がリリースされました。追加された機能について確認します。 スケジュールで使用できるパターンが追加されました (#33393) 以下の3つのメソッドが追加されました。 everyTwoHours() everyThreeHours() everyFourHours() everySixHours() それぞれ2時間毎、3時間毎、4時間毎、5時間毎に実行するメドッドです。 $schedule->job(SyncSomething::class)->cron('0 */2 * * *'); // once every 2 hours // or, with this PR $schedule->job(SyncSomething::class)->everyTwoHours(); APIリソースクラスで明示的に値を追加できるようになりました (#33422 ) whenLoaded()と似ていますが、特定の属性値が存在する場合に、その値もしくは指定の値をレスポンスに含むことができるようになりました。 この機能を実現するために、モデルクラスが使うHasAttributesトレイトにhasAppended()メソッドが追加されました。 第2引数には存在する場合の戻り値、第3引数には存在しなかった場合の戻り値の文字列、もしくはコールバックを指定します。 この2つの引数は省略可能です。 // Resource public function toArray($request) { return [ 'id' => $this->id, 'name' => $this->name, 'email' => $this->email, 'is_subscribed' => $this->whenAppended('is_subscribed'), 'created_at' => $this->created_at, 'updated_at' => $this->updated_at, ]; } // Response return new UserResource($user->append('is_subscribed')); ScheduledTaskFailedイベントが追加されました (#33427) Illuminate\Support\Stringableクラスにwhen()メソッドが追加されました (#33455) 以下の例はユーザーの認証状態からコンテンツの一部を制限する例です。 $blogContent = 'Laravel Factories Reloaded is a package by Christoph Rumpel that generates class-based model factories that you can use instead of the factory files Laravel provides'; // Before $stringable = Str::of($blogContent); if(!Auth::check()){ $stringable->limit(20,'.....') ->append('To Continue reading ') ->append(new HtmlString('<a href="#">Get a Subscription</a>')); } $stringable->__toString(); // After Str::of($blogContent) ->when(!Auth::check(),function($stringable){ return $stringable->limit(20) ->append('To Continue reading ') ->append(new HtmlString('<a href="#">Get a Subscription</a>')); }) ->__toString(); 詳しい変更については以下を確認してください。 Release v7.18.0 · laravel/framework · GitHub

[Laravel] 7.18.0がリリースされました

Laravel Authenticate Event
laravel/frameworkのv7.18.0がリリースされました。追加された機能について確認します。 Illuminate\Http\Client\PendingRequestクラスにwithMiddleware()メソッドが追加されました (#33315, b718d3a) LaravelのHTTPクライアント(Httpファサード)に独自のミドルウェアが追加できるようになりました。 通信内容の確認、検査等が柔軟に行えるようになりました。 HTTPリクエストをDebugBarで追跡する例: $client = new \Illuminate\Http\Client\PendingRequest(); $debugBar = new \DebugBar\StandardDebugBar(); // Get data collector. $timeline = $debugBar->getCollector('time'); // Wrap the timeline. $profiler = new \GuzzleHttp\Profiling\Debugbar\Profiler($timeline); $client->withMiddleware(new \GuzzleHttp\Profiling\Middleware($profiler)); $client->send('GET', 'https://httpbin.org/status/200'); var_dump($timeline->collect()); Illuminate\View\ComponentAttributeBagクラスにMacroableトレイトが追加されました (#33354) .クラス内の文字列が空では無いことを判定します。 Illuminate\View\ComponentAttributeBagクラスにfilter()、whereStartsWith()、thatStartWith()メソッドが追加されました (0abe2db, 07ee3e8) 作成される属性の情報を部分的に取り出せるようになりました。 $bag = new ComponentAttributeBag(['class' => 'font-bold', 'name' => 'test']); $this->assertSame('class="font-bold"', (string) $bag->whereStartsWith('class')); Illuminate\Database\Eloquent\CollectionクラスにtoQuery()メソッドが追加されました (#33356, b718d3a) CollectionからQueryBuilderへの変換ができるようになりました。 複数のレコードを更新したい場合に利用すると便利です。 Illuminate\View\ComponentAttributeBagクラスにfirst()メソッドが追加されました (#33358, 731b94f) 作成される属性の先頭を取り出せるようになりました。 $bag = new ComponentAttributeBag(['class' => 'font-bold', 'name' => 'test']); $this->assertSame('font-bold', (string) $bag->whereStartsWith('class')->first()); スケジュールで使用できるパターンが追加されました (#33379) 以下の3つのメソッドが追加されました。 everyTwoMinutes() everyThreeMinutes() everyFourMinutes() それぞれ2分毎、3分毎、4分毎に実行するメドッドです。 $schedule->job(SyncSomething::class)->cron('*/2 * * * *'); // every 2 minutes // or, with this PR $schedule->job(SyncSomething::class)->everyTwoMinutes(); 詳しい変更については以下を確認してください。 Release v7.18.0 · laravel/framework · GitHub

[Laravel] 7.6.0がリリースされました

Laravel Authenticate Event
laravel/frameworkのバージョン7.6.0がリリースされました。追加された機能について確認します。 Collection::until()メソッドが追加されました (#32262) filter()メソッドと似ていますが、条件に一致した時点の一つ前までの新しいコレクションが返されます。 また。引数にはコールバックを渡すこともできます。 // Before [$before, $after] = $primes->partition(function ($item) { return $item < 11; }); $before->dump(); // Using until $passed = $primes->until(11)->dump(); HtmlString::isEmpty()メソッドが追加されました (#32289, #32300) .クラス内の文字列が空 ('') なことを判定します。 Stringable::isNotEmpty()メソッドが追加されました (#32293) .クラス内の文字列が空では無いことを判定します。 Stringableクラスにltrim()、rtrim()メソッドが追加されました (#32288) Routeクラスで特定のミドルウェアをスキップできるようになりました (#32347, @412261c) ルーティング時に実行しないミドルウェアを登録できます。 Route::get('/something')->excludedMiddleware(VerifyCsrfToken::class) Route::get('/teams/create')->excludedMiddleware(VerifyUserHasTeam::class) Illuminate\Http\Client\Response::object()メソッドが追加されました (#32341) レスポンスにオブジェクト形式でアクセス可能になります。 // Current magic way - uses ->json() under the hood $response = Http::get('some-api.wip'); $response['result']; // Or with json() $response = Http::get('some-api.wip')->json(); $response['result']; // New option $response = Http::get('some-api.wip')->object(); $response->result; Bladeコンポーネントにエイリアス名を指定可能になりました (#32346) Illuminate\Database\Eloquent\Collection::append()メソッドが追加されました (#32324) コレクション全体に特定の属性を追加することができます。 // Before $collection->each(function($model) { $model->append($attribute) }); // After $collection->append($attribute); ピボットテーブルに対してbetweenが指定可能なメソッドが追加されました (#32364) 下記メソッドで指定可能です。 wherePivotBetween orWherePivotBetween wherePivotNotBetween orWherePivotNotBetween キューのリスナーにretryAfter()メソッドが追加されました (#32370) retryAfterはプロパティレベルの宣言しか行っていませんでしたが、メソッドレベルのサポートが追加されました。 メソッドで指定する場合は下記のように行います。 public function retryAfter() { // custom logic } 新しい形式のComposer installed.jsonがサポートされました (#32310) データベースカラムの型変更にuuidが追加されました (#32316) PostgreSQLでbytea型がサポートされました (#32319) 詳しい変更については以下を確認してください。 Release v7.6.0 · laravel/framework · GitHub

[Laravel] 7.2.0がリリースされました

Laravel Authenticate Event
laravel/frameworkのバージョン7.2.0がリリースされました。追加された機能について確認します。 コマンドのテスト方法にexpectsConfirmation()メソッドが追加されました (#31965) このメソッドは確認メッセージの答えがyesかnoかを確認します。 $this->artisan('foo:bar') ->expectsConfirmation('Do you want to continue?', 'no') ->assertExitCode(1); SMTPメールにタイムアウト時間を設定できるようになりました (#31973) HTTPクラスにクエリストリングパラメーターがサポートされました (#31996) GETメソッドを利用する際にはオプションの引数の値でクエリストリングが上書きされますが、これはGuzzleの仕様なので混乱しないようにと注意書きがあります。 Http::get('https://example.com/get'); // URL: https://example.com/get Http::get('https://example.com/get?abc=123'); // URL: https://example.com/get?abc=123 Http::get('https://example.com/get', ['foo' => 'bar']); // URL: https://example.com/get?foo=bar Http::get('https://example.com/get', 'foo=bar'); // URL: https://example.com/get?foo=bar Http::get('https://example.com/get?abc;foo;bar;1;10;2&p=2'); // URL: https://example.com/get?abc;foo;bar;1;10;2&p=2 Http::get('https://example.com/get', 'abc;foo;bar;1;10;2&p=2'); // URL: https://example.com/get?abc;foo;bar;1;10;2&p=2 Http::get('https://example.com/get', ['abc;foo;1;10;2' => 'bar', 'p' => 2]); // URL: https://example.com/get?abc%3Bfoo%3B1%3B10%3B2=bar&p=2 詳しい変更については以下を確認してください。 Release v7.2.0 · laravel/framework · GitHub
Kentaro Nishiguchi
もしかして: Laravel
RECENT POSTS
© Xzxzyzyz