😇

Laravel Collectiveが終了する

2023/09/07に公開

Laravel Collectiveが終了する

Laravel 11以降は使えなくなる。

https://laravelcollective.com/thanks

https://laravel-news.com/collective-html-abandoned

Laravel Collectiveとは何だったのか

Laravel公式から削除された機能を引き続き使えるようにコミュニティーが引き継いだもの。

Formは元々Laravel4の頃は公式に存在した機能。
https://laravel.com/docs/4.2/html
Laravel5.0で削除されたのでコミュニティーが引き継いで生まれたのがLaravel Collective。

Laravel Collectiveは非公式パッケージ。元は公式とはいえ公式からのサポートは一切ない。

今でも初心者はLaravel Collectiveをインストールして使ってるけど明らかに古い情報に騙されてる。Laravelのバージョンアップを何度か経験したらLaravel Collectiveの新バージョンへの対応の遅さが嫌になってLaravel Collectiveは使わなくなる。

自分もLaravel5.3とか5.4の頃にはもうLaravel Collectiveは捨てていた。

Laravel Collectiveからの脱出方法

「Laravel Collectiveの代わりになるパッケージはある?」とか考えず普通にhtmlを書けばいい。htmlなんて誰でも書ける簡単なことに別パッケージを使う必要はない。

{!! Form::open(['url' => 'foo/bar']) !!}
    //
{!! Form::close() !!}
<form action="{{ route('foo.bar') }}" method="POST">
   @csrf
   <input ...>
</form>

BreezeやJetstreamを見れば分かるように何度も同じhtmlを書きたくないならBladeコンポーネントを使うのが今のLaravelの使い方。

https://github.com/laravel/breeze/tree/1.x/stubs/default/resources/views/components
https://github.com/laravel/jetstream/tree/4.x/stubs/livewire/resources/views/components

Laravel4時代の古い使い方でしかないLaravel Collectiveは遠慮なく投げ捨てる。

余談:Formが削除された背景の予想

LaravelはAPIでjson返すだけでhtmlはフロントで表示するのが主流になると思われてた時代なのでLaravelでhtmlを生成するFormは削除された。

Laravel 10現在ではLivewire人気の上昇もあってBladeに回帰しているけど。

Discussion