Author: khino

カレンダー(3)休日と営業時間の表示NEW! 

Livewireを使用してカレンダーをリアクティブにしたところで、次はある店舗のカレンダーと見立てて休日と営業時間の表示をします。2つパッケージを使います。1つは、Laravelのパッケージをたくさん提供することで有名なspatieのopening-hoursのパッケージ、もう1つはいろいろな国の祭日のデータを提供するパッケージyasumiです。

カレンダー(1)AIで生成

カレンダーに関連するプロジェクトは、そのダイナミックなデータの性質上とても面白いです。また、店舗休日を表示するための月間カレンダーの生成とか、場所や部屋や物の予約のためのカレンダーのアプリとか実用的なものが多いです。私のお客さんのサイトでもチェックアウト画面でお客さんが届け日を指定するために月間のカレンダーが表示されます。カレンダーを題材にLaravelでどんなことが簡単にできるかをいくつかの投稿に分けて紹介します。

Livewireを使ってポーリング

ウェブソケットと同様にリアルタイム(まがい)で画面の一部を更新する方法に、ポーリングがあります。ウェブソケットではサーバーから更新情報をブラウザ(クライアント)へプッシュするのに対して、ポーリングは逆にブラウザからサーバーに情報を一定の時間で取得(ポーリング)しに行きます。それゆえに、PusherやReverbのようなウェブソケットサーバーは必要でなく簡単なセットアップとなります。このポーリングをとても人気があるLivewireを使用してプログラムしてみます。

Laravel Zero(1)コマンドの作成

今でも覚えています。Laravelを使い始めた時にとても気に入ったのがartisanコマンドであったことを。その当時の他のPHPフレームワークと異なり、Laravelでは最初からコマンドの開発がMVCのUIの開発と肩を並べて上級扱いされていました。Unix系のコマンドに慣れている私には感激でした。しかし、コマンドだけの開発しか必要ないときがあります。つまりブラウザの画面を必要としない開発です。そのようなときにLaravelをインストールすると、ウェブのためのコントローラなどが一緒についてくるので煩わしく思えます。そこで登場するのが、Laravel Zeroです。

ユニットテストの超高速化

長年管理しているお客さんのプロジェクトのユニットテスの数が増えてきました。Featureテストも含めてテストケースの数は2,400以上あります。私の古めのWindowsのマシン(i7-9700CPU @ 3.00GHz)のWSL2環境では、7分51秒かかります。今回はこのテスト実行所有時間をほぼ1/10の50秒以下に縮めた話です。