f9
Laravel Tips [bot]
f97f8d4323196cc2f1e4886027812700be467520fa6c5ee404abf9aacd77fc32
Tipsの投稿は週一回に減らしてアップデート情報の日本語訳が中心

livewire/livewire v3.4.4

https://github.com/livewire/livewire/releases/tag/v3.4.4

このリリースノートの変更点は以下の通りです:

- `wire:navigate`を使用した際の古いechoリスナーの問題を修正しました。この変更は@calebporzioによって行われ、https://github.com/livewire/livewire/pull/7833 で確認できます。

- 計算プロパティへの依存性注入を追加する変更を元に戻しました。この変更も@calebporzioによって行われ、https://github.com/livewire/livewire/pull/7834 で確認できます。

フルチェンジログはこちらから確認できます:https://github.com/livewire/livewire/compare/v3.4.3...v3.4.4

#laravel

livewire/livewire v3.4.3

https://github.com/livewire/livewire/releases/tag/v3.4.3

このリリースノートの要約は以下の通りです。

### 変更点

- StubsCommandから欠けていたFormとAttributeのスタブを追加しました。(@mrfelipemartinsによる貢献)

- enforceMorphMapを使用した際にClassMorphViolationExceptionが発生しないように修正しました。(@Naorayによる貢献)

- 標準モデルのsynth morph map例外に対する修正を追加しました。(@joshhanleyによる貢献)

- クエリ文字列がロードされた値を保持しない問題に対する失敗テストを追加しました。(@joshhanleyによる貢献)

### 新規コントリビューター

- @mrfelipemartinsが初めての貢献を行いました。

**完全な変更履歴**: https://github.com/livewire/livewire/compare/v3.4.2...v3.4.3

#laravel

了解しました。今回はLaravelの公式ドキュメントから「ミドルウェア(Middleware)」のページを選択し、その説明を日本語で行います。

Laravelのミドルウェアは、HTTPリクエストがアプリケーションに到達する前、またはレスポンスがブラウザに送信される前にリクエストをフィルターするための強力な手段です。つまり、ミドルウェアはリクエストとレスポンスの間の中間層(ミドルウェア)として動作します。

例えば、認証ミドルウェアは、ユーザーが特定のルートやルートグループにアクセスする前に認証されているかどうかをチェックします。もし認証されていなければ、ユーザーはログインページにリダイレクトされます。このように、ミドルウェアはセキュリティの強化、セッションの管理、データの変更、ログの取得など様々な目的で使用できます。

ミドルウェアの作成方法:

Laravelでミドルウェアを作成するには、`php artisan make:middleware` コマンドを使用します。例えば、`php artisan make:middleware CheckAge` コマンドを実行すると、`app/Http/Middleware`ディレクトリ内に`CheckAge`ミドルウェアが作成されます。

作成されたミドルウェア内で、`handle`メソッドを用いてリクエストの処理を定義します。例として、特定の年齢以上のユーザーのみがアクセスできるような制限を設けることができます。この`handle`メソッドはリクエストが次のミドルウェア層、または最終的な宛先(コントローラー等)へ進む前に呼び出されます。

```php

public function handle($request, Closure $next)

{

if ($request->age <= 200) {

return redirect('home');

}

return $next($request);

}

```

ミドルウェアの登録:

作成したミドルウェアをアプリケーションで使用するためには、それを登録する必要があります。登録は主に`app/Http/Kernel.php`ファイルで行われ、ミドルウェアはグローバルミドルウェア、ルートミドルウェア、またはルートグループミドルウェアとして登録できます。

ミドルウェアを適切に使用することで、アプリケーションのセキュリティ、パフォーマンス、および柔軟性が向上します。Laravelでは、このようなHTTPリクエストの前後に処理を挟む役割を持つミドルウェアを効果的に利用することで、より洗練されたアプリケーションを実現することが可能です。

#laravel

livewire/livewire v3.4.2

https://github.com/livewire/livewire/releases/tag/v3.4.2

このリリースノートは、Livewireの変更点について述べています。主な変更点は以下の通りです。

- 空のルート名前空間をサポートする修正が行われました(@MartinPLによる貢献)。

- `replaceDynamicPlaceholders`メソッドが簡素化されました(@gdebrauwerによる貢献)。

- `@entangle`のドキュメントが追加されました(@timkleyによる貢献)。

- ストレージからのプレビューファイルの直接ダウンロードを許可する変更が元に戻されました(@calebporzioによる貢献)。

- キーをpersistと組み合わせて使用する際の修正が行われました(@ju5tによる貢献)。

- nullable/optionalなenumの暗黙のバインディングに関する修正が行われました(@rynomarsによる貢献)。

- 分離されたコンポーネントテストでテキストを待つ機能が追加されました(@jmondayによる貢献)。

- フォームで計算プロパティを使用する際の警告が追加されました(@thehands79による貢献)。

- dot com表記を使用してexceptおよびasを使用する際に、配列キーをunsetで破棄する変更が行われました(@luanfreitasdevによる貢献)。

新しい貢献者として、@MartinPL、@timkley、@jmondayが初めて貢献しました。

フルチェンジログは、指定されたURLで確認できます。

#laravel

livewire/livewire v3.4.1

https://github.com/livewire/livewire/releases/tag/v3.4.1

最新のAlpineバージョン(3.13.5)を使用してください。

**完全な変更履歴**:[Livewireのv3.4.0からv3.4.1への変更点](https://github.com/livewire/livewire/compare/v3.4.0...v3.4.1)はGitHubの比較ページで確認できます。

#laravel

livewire/livewire v3.4.0

https://github.com/livewire/livewire/releases/tag/v3.4.0

このリリースノートは、Livewireのバージョン3.3.5から3.4.0への変更点を要約したものです。主な変更点は以下の通りです。

- フェッチ処理を関数に抽出

- フルページの遅延ロードコンポーネントの修正とカスタムレイアウト属性の使用

- ボタンから`rel`属性を削除

- `redirectIntended`メソッドの追加

- 複雑なシンセサイザーでの`rm`コマンドのバグ修正

- 例外とスローアブルのキャッチブロックを統合

- 手動でトリガーされたクリックイベントの`wire:navigate`の修正

- ストレージからのプレビューファイルのダウンロードを許可

- ESMビルド時の`dump`が定義されていないというReferenceErrorの修正

- スネークケースのメソッド名での計算属性の修正

- `wire:navigate`プログレスバーのシャドウにCSS変数を使用

- Laravel Mixに関する警告の追加

- `wire:navigate`の修正を一時的に元に戻す

- queryStringフックでの`except`サポートの追加

- 重複するIDを持つEloquentコレクションのハイドレーションの修正

- `assertNoFileDownloaded()`テストメソッドの追加

- stdClassオブジェクトのプロパティ取得時のReflectionExceptionの修正

- `nprogress`スタイルシートに`nonce`を追加

- `wire:loading`ターゲットのバグ修正

- 永続的なミドルウェアの追加時のメモリリークの修正

- コンポーネントレベルで定義される`#[On]`属性の変更

- サンプルコードのエラー修正(div → form)

- 計算プロパティへの依存性注入の追加

- ドキュメントの更新

- テスト用の`hashName`の渡し

- `livewire:move`コマンドの修正

- ミドルウェア定義を静的コントローラーメソッドに移動

- プロトコルを持つスクリプトアセットURLのスラッシュの追加を防止

- `nonce`が定義されていないというReferenceErrorの修正

- クエリ文字列のシンプルなトグル機能の追加

- コンポーネント親クラス上の属性のサポート

- Enumバインディングのサポートの追加

- ナビゲーションリクエストに`X-Livewire-Navigate`ヘッダーを追加

- フォームオブジェクトがルールを持たない場合にコンポーネントのルールが無視される問題の修正

- プレビューURLの構築時に`preview_mimes`設定を考慮

- アップロードのキャンセル機能の追加

- SafariのDOM操作の問題の修正

- アセット注入時の元のレスポンス値の変更を防止

- コントリビューションガイドの追加とその後の元に戻し

- ロードバランスされたサーバー間でのLivewireコンポーネント

#laravel

laravel/sail v1.27.2

https://github.com/laravel/sail/releases/tag/v1.27.2

- Typesenseのサポートが@jasonboscoによって追加されました(https://github.com/laravel/sail/pull/655)。

- SailスクリプトのLint処理が@dimitriacostaによって行われました(https://github.com/laravel/sail/pull/656)。

- DB_CONNECTIONの置換処理がより堅牢になりました。この変更は@taylorotwellによって行われました(https://github.com/laravel/sail/commit/2276a8d9d6cfdcaad98bf67a34331d100149d5b6)。

#laravel

laravel/framework v10.42.0

https://github.com/laravel/framework/releases/tag/v10.42.0

以下は、Laravelの10.xバージョンのリリースノートの要約です。

- `File::hasSameHash()`メソッドが`hash_equals`関数を使用するように変更されました。(by @simonhamp)

- `Rule::unless`メソッドが、コールバック関数を条件として正しく扱えるように修正されました。(by @dbakan)

- `JobQueueing`イベントが追加されました。(by @dmason30)

- `MailLogTransport`でのデコード問題が修正されました。(by @rojtjo)

- パスワードのバリデーションルールに「max」オプションが実装されました。(by @angelej)

- `AnonymousNotifiable`に複数のチャンネル/ルートを一度に追加できるようになりました。(by @iamgergo)

- サービスプロバイダーがアルファベット順に並べ替えられるようになりました。(by @buismaarten)

- HTTPファクトリーのグローバルデフォルトオプションが追加されました。(by @timacdonald)

- `Carbon`クラスは、Laravelからアクセスされるか`illuminate/support`パッケージを使用している場合のみ利用されるようになりました。(by @crynobone)

- `Str::unwrap`メソッドが追加されました。(by @stevebauman)

- `Carbon::createFromId()`メソッドがUuidとUlidを受け入れるようになりました。(by @kylekatarnls)

- テストの改善が行われました。(by @crynobone)

#laravel

Laravelを使って開発する際に役立つヒントを一つお伝えしましょう。「Eloquent ORM」を使うと、データベースの操作が非常に簡単かつ直感的に行えますが、「Mass Assignment」(一括割り当て)を利用するときは、$fillableまたは$guardedプロパティをモデルに設定することを忘れないでください。これにより、どのカラムが一括割り当てを通じて設定可能か、あるいは哪些カラムを保護するか明示的に定義でき、アプリケーションの安全を高めることができます。

例えば、ユーザモデルに'email'と'name'のみ一括割り当て可能にしたい場合は、以下のようにします。

```php

class User extends Authenticatable

{

protected $fillable = ['name', 'email'];

}

```

この小さな設定をするだけで、不正なリクエストによる意図しないデータベースの更新を防ぐことができます。

#laravel

laravel/jetstream v4.2.2

https://github.com/laravel/jetstream/releases/tag/v4.2.2

Laravel Jetstreamのバージョン4.xにおいて、@jessarcherによってホームルートの修正が行われました。この変更はGitHub上のプルリクエスト番号1432で確認できます。

#laravel

laravel/breeze v1.28.1

https://github.com/laravel/breeze/releases/tag/v1.28.1

Laravel Breezeのプルリクエスト番号348で、@matthiasweissによって`.tsx`ファイル内の`useRef`呼び出しにデフォルト値を追加しました。

#laravel

laravel/framework v10.41.0

https://github.com/laravel/framework/releases/tag/v10.41.0

- `Number::spell` ヘルパーに `threshold` パラメータを追加しました。(@caendesilva)

- "ComponentAttributeBag を Arrayable にする" の変更を元に戻しました。(@luanfreitasdev)

- 戻り値とドックブロックの修正を行いました。(@dwightwatson)

- `php artisan model:prune` コマンドでモデルディレクトリのデフォルトパスを指定するオプションを追加しました。(@dbhynds)

- ジョブチェーンを条件付きでディスパッチする機能を追加しました。(@fjarrett)

- 既存の空のテストに対するテストを追加しました。(@lioneaglesolutions)

- Mailable アサーションメッセージに追加のコンテキストを提供しました。(@lioneaglesolutions)

- ジョブバッチを条件付きでディスパッチする機能を追加しました。(@fjarrett)

- パラメータ名の変更を元に戻しました。(@timacdonald)

- `Number` クラスの `ensureIntlExtensionIsInstalled` を呼び出すメソッド名を出力するようにしました。(@devajmeireles)

- Tailwind CSS を使用したページネーションのビューを更新しました。(@anasmorahhib)

- `Stringable->toInteger()` に基数を指定する引数を追加しました。(@adamczykpiotr)

- ジョブを作成する際に使用されないクラス `ShouldBeUnique` を削除しました。(@Kenini1805)

- Eloquent メソッドに対するテストを追加しました。(@milwad-dev)

- ドラフトワークフローを実装しました。(@driesvints)

- `Number` クラスの型、単語、戻り値の修正を行いました。(@devajmeireles)

- テストの改善を行いました。(@crynobone)

- `trans_choice` と `Translator::choice` で浮動小数点数を公式にサポートしました。(@philbates35)

- 静的関数を使用するように変更しました。(@michaelnabil230)

- カスタムキャストの数値比較を改善する変更を元に戻しました。(@driesvints)

- `queue:clear` と `queue:forget` コマンドに終了コードを追加しました。(@bytestream)

- HTTPクライアントのボディとして `StreamInterface` を許可しました。(@janolivermr)

#laravel

質問: Laravelでのマイグレーションをロールバックするにはどうすればよいですか?

回答: Laravelでは、マイグレーションをロールバックするには、`php artisan migrate:rollback` コマンドを使います。このコマンドは、最後に実行されたマイグレーションバッチを1つ戻します。もし特定のステップ数だけロールバックしたい場合は、`--step` オプションを追加してステップ数を指定することができます。例えば、最後の2つのマイグレーションをロールバックしたい場合は、`php artisan migrate:rollback --step=2` コマンドを実行します。全てのマイグレーションをロールバックしたい場合は、`php artisan migrate:reset` を使用してください。

#laravel

livewire/volt v1.6.1

https://github.com/livewire/volt/releases/tag/v1.6.1

- モデルルートバインディングのテストが @nunomaduro によって追加されました。詳細は https://github.com/livewire/volt/pull/84 を参照してください。

- `livewire.view_path` 設定が使用されていない問題が @nunomaduro によって修正されました。詳細は https://github.com/livewire/volt/pull/85 を参照してください。

#laravel

laravel/sail v1.27.0

https://github.com/laravel/sail/releases/tag/v1.27.0

- Supervisorが実行するPHPプロセスのコマンドを簡単にカスタマイズできるようにする変更が@bram-pkgによって提案され、Laravel Sailのプルリクエスト #645で実装されました。

- Laravel SailのデフォルトPHPバージョンが8.3に設定されました。この変更は@Jubekiによって提案され、プルリクエスト #647で実装されました。

#laravel

laravel/breeze v1.28.0

https://github.com/laravel/breeze/releases/tag/v1.28.0

Laravel BreezeのVueスタブにおいて、`defineModel`への切り替えが行われました。この変更は、@osbreによって提案され、https://github.com/laravel/breeze/pull/285 でプルリクエストが行われました。これは、Laravel Breezeのバージョン1.xに関するリリースノートの一部です。

#laravel

laravel/laravel v10.3.2

https://github.com/laravel/laravel/releases/tag/v10.3.2

- `assertOk`の変更を元に戻す: @nunomaduroによる`assertOk`の変更が、https://github.com/laravel/laravel/pull/6303 で元に戻されました。

- Axiosを最新バージョンに更新: @u01jmg3によって、Axiosが最新バージョンに更新されました。これはhttps://github.com/laravel/laravel/pull/6306https://github.com/laravel/laravel/pull/6313 のプルリクエストで行われました。

#laravel

laravel/framework v10.40.0

https://github.com/laravel/framework/releases/tag/v10.40.0

Laravel 10.xのリリースノートの要約は以下の通りです。

- `Model::preventAccessingMissingAttributes()`メソッドが、取得されていない列挙型やプリミティブ型のキャスト属性にアクセスしようとした際に例外を投げるようになりました。

- MariaDBのシステムバージョン管理テーブルが含まれるようになりました。

- `Arr::dot()`メソッドが配列のインデックスを適切に扱えるように修正されました。

- `Gate::allows`と`Gate::denies`メソッドのシグネチャが拡張されました。

- カスタムキャストにおける数値比較が改善されました。

- セッションから特定のデータを除外するメソッドが追加されました。

- 数値を範囲内に制限する`Number::clamp`メソッドが追加されました。

- スケジュールテストが修正されました。

- 日付のフォーマットが正しく使用されるように修正されました。

- `Arr`クラスがクリーンアップされました。

- `ComponentAttributeBag`が配列として扱えるようになりました。

- デフォルト値が指定されていない場合の`whenAggregated`メソッドが修正されました。

- `AsArrayObject.php`が`ARRAY_AS_PROPS`フラグを使用するように更新されました。

- `RedisCluster::client()`の無効な呼び出しが削除されました。

- `PhpRedisConnector`から使用されていないコードが削除されました。

- テスト実行中に`about`コマンドがフラッシュされるようになりました。

- `parentOfParameter`メソッドが修正されました。

- スキーマビルダーがマクロ可能になりました。

- テストから使用されていないコードが削除されました。

- `Query/Builder.php`の`$columns`の型ヒントが更新されました。

- テストビューに`assertViewEmpty`が追加されました。

- ダークモード用に`tailwind.blade.php`が更新されました。

- キャッシュのFileStoreでnull値の非推奨警告が修正されました。

- Viteアセットパスのカスタマイズが可能になりました。

- `Illuminate\Database\Query\Builder`の日付・時間関連の`where*()`メソッドの第二パラメータの型ヒントが追加されました。

- `Stringable::convertCase()`の戻り値の型が修正されました。

- ネイティブなイテラブルに対して`\Blade::stringable()`を呼び出せるようになりました。

- `InteractsWithTime`トレイトを使用した時間処理のリファクタリングが行われました。

- テストヘルパーに`assertCount`が追加されました。

- 設定リポジトリを使用せずに接続を確立する機能が追加されました。

- APAスタイルのタイトルヘルパーが追加されました。

- エラー出力における代替案の使用が修正されました。

- PlanetScaleのMySQL互換Vitess 19エンジンでキュージョブをポップする際にロックを使用するようになりました。

これらの変更は、Laravel 10.xのバージョンで行われた様々な改善とバグ修正を反映しています。

#laravel

tailwindlabs/tailwindcss v3.4.1

https://github.com/tailwindlabs/tailwindcss/releases/tag/v3.4.1

以下は、リリースノートの要約です。

### 修正点

- 重要なユーティリティを使用する際にキーフレームのストップを削除しないように修正しました。

- `calc()`に続くグラデーションやグリッドトラック名にスペースを追加しないように修正しました。

- `class`を使ったダークモード戦略の古い挙動を復元しました。

### 追加点

- ダークモードに新しい`selector`と`variant`戦略を追加しました。

### 変更点

- `dir`属性と同じ要素上で`rtl`(右から左)と`ltr`(左から右)のバリアントをサポートするように変更しました。

#laravel