PHP

Laravel

【Laravel】Laravel×Reactの構成比較:どちらを選ぶべきか検証してみた

こんにちは、かつコーチです。前回は、LaravelとVue(Inertia.js)で簡単なTODOアプリを作りました。今回は同じTODOアプリをReactでも作ってみて、Vue構成との違いを実際に比較検証していきます。このシリーズもいよいよ...
Laravel

【Laravel】Laravel×Vue/Inertiaで簡単なTODOアプリを作ってみる

こんにちは、かつコーチです。これまでService・Repository・Form Request・ディレクトリ構成と、Laravelの設計面を中心に見てきました。ここからは実践編として、フロントエンドにVueを使い、Inertia.jsで...
Laravel

【Laravel】Laravelのディレクトリ構成をカスタマイズする考え方

こんにちは、かつコーチです。これまでService・Repositoryパターン、Form Requestと、責務ごとにクラスを分ける方法を紹介してきました。クラスの数が増えてくると、次に気になるのが「これらをどこに置くか」というディレクト...
Laravel

【Laravel】Form Requestを活用してバリデーションを整理する

こんにちは、かつコーチです。前回はService・Repositoryパターンで、ControllerからDB操作や業務ロジックを追い出す方法を紹介しました。今回は、Controllerに残りがちなもう一つの塊「バリデーション」を整理する、...
Laravel

【Laravel】Service・Repositoryパターンを導入するメリットと実装例

こんにちは、かつコーチです。前回は「太らせないControllerの書き方」というテーマで、Controllerの責務を最小限に絞る考え方を扱いました。では、Controllerから追い出したロジックはどこに行くべきなのでしょうか。今回はそ...
Laravel

【Laravel】MVCを実践する:太らせないControllerの書き方

こんにちは、かつコーチです。前回はパフォーマンスチューニングの基本を解説しました。今回からは設計・アーキテクチャ編に入り、最初のテーマとして「Fat Controller(太ったコントローラ)」問題を扱います。Laravelは書きやすさゆえ...
Laravel

【Laravel】Laravelのパフォーマンスチューニング入門

こんにちは、かつコーチです。前回は外部APIとの連携方法を解説しました。今回は、実装したアプリケーションが「遅い」と感じ始めたときに見直すべき、Laravelのパフォーマンスチューニングの基本を扱います。やみくもにキャッシュを増やすのではな...
Laravel

【Laravel】外部APIとの連携方法(Http::get/postの使い方)

こんにちは、かつコーチです。前回はAPI Resourceで自社のAPIレスポンスを整形する方法を解説しました。今回はその逆で、天気情報や決済サービス、外部の認証基盤など、他社が提供するAPIをLaravelから呼び出す方法を扱います。La...
Laravel

【Laravel】LaravelでAPIを作る基本(API Resource)

こんにちは、かつコーチです。前回はLivewireの基本機能を解説しました。今回は少し話題を変えて、フロントエンドがVueやReact、あるいはスマホアプリになったときに欠かせない「API」の作り方を扱います。Eloquentモデルをそのま...
Laravel

【Laravel】Vue・Inertia・Laravelでの画像アップロード実装

こんにちは、かつコーチです。前回はBladeベースでのファイルアップロードの実装パターンを解説しました。今回はもう一歩進んで、Vue・Inertiaを使ったSPA(Single Page Application)構成での画像アップロードを扱...
Laravel

【Laravel】ファイルアップロードの実装パターン集

こんにちは、かつコーチです。前回はLaravelでよく出るエラーと解決法をまとめました。今回は、実務でほぼ必ず出てくる「ファイルアップロード」の実装パターンを、基本から一歩踏み込んだところまで解説します。プロフィール画像、PDFの添付、CS...
Laravel

【Laravel】Laravelでよく出るエラーと解決法まとめ

こんにちは、かつコーチです。ここまでルーティングやコントローラ、Eloquent、認証、キュー、スケジューラといった機能を順番に解説してきました。今回からは少し毛色を変えて、「実践Tips・エラー解決」編に入っていきます。初回は、Larav...
Laravel

【Laravel】Task Scheduling(スケジューラ)で定期処理を実装する

こんにちは、かつコーチです。前回はQueueを使って、時間のかかる処理を非同期化する方法を解説しました。今回は、その延長線上にある「定期処理」の実装方法です。「毎日深夜に古いデータを削除したい」「毎朝レポートをメールで送りたい」——こういっ...
Laravel

【Laravel】Queueの基本:時間のかかる処理を非同期化する

こんにちは、かつコーチです。前回は、config・route・viewの3種類のキャッシュで応答速度を改善する方法を解説しました。キャッシュは「無駄な処理を減らして速くする」アプローチでしたが、今回紹介するQueue(キュー)は、「時間のか...
Laravel

【Laravel】Laravelのキャッシュ設定(config/route/viewキャッシュ)

こんにちは、かつコーチです。前回は、.env ファイルの環境ごとの管理方法と、シークレット情報の安全な扱い方を解説しました。その中で少し触れた config:cache について、今回はきちんと掘り下げていきます。Laravelには、本番環...
Laravel

【Laravel】環境ごとの.env管理とシークレット情報の扱い方

こんにちは、かつコーチです。前回は、Laravelアプリを本番環境にデプロイする一連の流れを解説しました。その手順の中で何度も登場した .env ファイルですが、実は「開発環境と本番環境でどう使い分けるか」「パスワードなどの機密情報をどう安...
Laravel

【Laravel】Laravelアプリを本番環境にデプロイする流れ

こんにちは、かつコーチです。前回は、GitHub Actionsでテストを自動化するCIの仕組みを解説しました。テストが安心して通せるようになったら、次はいよいよ「本番環境にアプリを届ける」というステップに進みます。ここから数回にわたって、...
Laravel

【Laravel】GitHub ActionsでLaravelのテストをCI連携する

こんにちは、かつコーチです。前回まで、FactoryとRefreshDatabaseを使ってテストデータを整える方法を解説してきました。ローカル環境で php artisan test を実行すれば、テストが通るかどうかは確認できます。です...
Laravel

【Laravel】FactoryとRefreshDatabaseでテストデータを整える

こんにちは、かつコーチです。前回はUnit Testで、DBに依存しない単体ロジックのテスト方法を解説しました。今回は、DBを使うテストを書くうえで欠かせない「Factory」と「RefreshDatabase」を解説します。これでテスト編...
Laravel

【Laravel】Unit Testでモデル・サービスクラスをテストする

こんにちは、かつコーチです。前回はFeature Testで、コントローラを含めた機能全体の動作を検証する方法を解説しました。今回は、モデルやサービスクラスといった「単体のロジック」を検証するUnit Testを解説します。Unit Tes...