ProcessファサードでLinuxコマンドを実行する
webアプリにおいても時折、シェルスクリプトやLinuxコマンドなどを実行したい場合があります。そんな時、従来はexec()やsystem()を使用して実行していましたが、Laravel10からはProcessファサードが導入されLaravel的なインタフェースが用意された事でより直感的且つ読み易いコードが書けるようになりました。今回はProcessファサードの基本的な使い方を解説したいと思います。
webアプリにおいても時折、シェルスクリプトやLinuxコマンドなどを実行したい場合があります。そんな時、従来はexec()やsystem()を使用して実行していましたが、Laravel10からはProcessファサードが導入されLaravel的なインタフェースが用意された事でより直感的且つ読み易いコードが書けるようになりました。今回はProcessファサードの基本的な使い方を解説したいと思います。
コレクションの空をチェックする関数は、isEmpty()、しかし現実では「~が空でないとき」という条件文も良く使います。 もちろん、! で if (! $collection->isEmpty()) とすることでも十分なのですが、なぜか if ($collection->isNotEmpty()) の方が私にはわかりやすい。
2011年6月に最初のVersionがリリースされてから12年。ついにLaravelも大台のVersion 10 を迎える事となりましたね。(パチパチパチ!!)という事でいつも通りinstallしてキャッチアップです。
テスト対象が外部APIにアクセスしている場合、テストの度にAPIにアクセスするためテストに時間がかかる・APIが落ちているとテストも落ちる、といった不便さがあります。そこでモックを使用すると、APIを介すことなく対象のテストを行うことができて便利です。本記事では、Mockeryを使ったモックの作成方法・テストの書き方をご紹介します。
前回の記事にてタイムアウトとなった場合に2種類の例外がスローされる事を説明しました。クエリ実行中にタイムオーバーとなった場合は、QueryException。クエリ実行外でタイムオーバーとなり、その後クエリを実行してエラーとなる場合は、自作したTimeoutExceptionです。今回はこれらのエラーをどうキャッチしてハンドリングするのか解説します。
先日、管理サイトにてアラートが発生しました。調査すると、ある検索画面で利用者が重いクエリを連続で発行した事が原因でした。待ち時間が長かった為、不安になり検索ボタンを連打してしまったようです。サーバに負荷を掛ける操作については注意喚起するとして、待ち時間に制限が無いのはよくありません。そこで、検索処理に制限時間を設ける事にしました。今回はそちらの実装にあたって色々学んだことがあるので紹介します。
factoryを使ったダミーデータ作成方法の3回目です。今回は、複数のデータ作成に便利なsequenceメソッドと、そのユースケースをご紹介します。
個人で色々試したいものがある時に最新のPHPが必要となる事が多々あります。そんな時、今まではHomebrewで両方のversionをインストールして環境変数のパスを手作業で切り替えていましたが、正直面倒です。今回はPHPBrewを使ってそんな面倒が解消されるか試してみます。今回の記事は私の作業環境であるmacOSでの話となります、ご承知ください。
factoryを使ったダミーデータ作成方法の2回目です。前回は単一モデルを扱った内容でしたが、今回は「1対多」のリレーションデータを作成します。
プログラムの中のどこからでもカスタムログを作成できるようにしたのは前回の話。今回はそのログを例えば3ヶ月ごとにローテーションしてみます。