• Amazonで購入
  • 楽天で購入

PHPフレームワークLaravel Webアプリケーション開発バージョン8.x対応

大規模化・複雑化するWebアプリ開発のための設計技法と技術を解説

著者
竹澤 有貴/栗生 和明/新原 雅司/大村 創太郎
定価
4,180円(本体価格 3,800円)
発売日
2021年5月28日
判型/ページ数
B5変型判/560
ISBN
978-4-8026-1300-2
備考
-

Web職人たちから圧倒的な支持を集めているPHPフレームワーク「Laravel」を使ったWebアプリケーション開発の実践的な指南書。

【1】最新のLaravel 8系に対応!
【2】第一線で活躍する著者陣が、大規模化・複雑化するWebアプリケーションを開発するための新しい設計技法、技術を詳解。
【3】MVCに代わりモダンなPHPアプリケーション開発で採用が増えている「ADR」とは?
【4】テストコードによる動作検証の基本から、Laravelを使ったテスト駆動開発の導入シナリオまで。
【5】エラーハンドリングやログ収集など運用に欠かせないノウハウも充実。

【サンプルコード】https://github.com/laravel-socym2021

ジャンル

目次

第一部 Laravelの基礎

Chapter 1 Laravelの概要

 1-1 Laravelとは
  1-1-1 Laravelの特徴
  1-1-2 開発情報
 1-2 環境構築
  1-2-1 Laravel Sailを利用した環境構築
  1-2-2 Homesteadを利用した環境構築
 1-3 最初のアプリケーション
  1-3-1 Laravelのディレクトリ構成
  1-3-2 Welcomeページの処理
  1-3-3 はじめてのページ
  1-3-4 はじめてのテストコード
  1-3-5 ユーザー登録の実装
  1-3-6 ユーザー認証
  1-3-7 イベント

Chapter 2 Laravelのアーキテクチャ

 2-1 ライフサイクル
  2-1-1 Laravelアプリケーション実行の流れ
  2-1-2 エントリポイント
  2-1-3 HTTPカーネル
  2-1-4 ルータ
  2-1-5 ミドルウェア
  2-1-6 コントローラ
 2-2 サービスコンテナ
  2-2-1 サービスコンテナとは
  2-2-2 バインドと解決
  2-2-3 バインド
  2-2-4 解決
  2-2-5 DIとサービスコンテナ
  2-2-6 ファサード
 2-3 サービスプロバイダ
  2-3-1 サービスプロバイダの基本的な動作
  2-3-2 DeferrableProviderインターフェースの遅延実行
 2-4 コントラクト
  2-4-1 コントラクトの基本
  2-4-2 コントラクトを利用した機能の差し替え

Chapter 3 アプリケーションアーキテクチャ

 3-1 MVCとADR
  3-1-1 MVC(Model View Controller)
  3-1-2 ADR(Action Domain Responder)
 3-2 アーキテクチャへの入口
  3-2-1 フレームワークとアーキテクチャ設計
  3-2-2 アーキテクチャ設計のポイント
  3-2-3 レイヤードアーキテクチャ
  3-2-4 レイヤードアーキテクチャの一歩先の世界

第二部 実践パターン

Chapter 4 HTTPリクエストとレスポンス

 4-1 リクエストハンドリング
  4-1-1 リクエストの取得
  4-1-2 Requestファサード
  4-1-3 Requestオブジェクト
  4-1-4 フォームリクエスト
 4-2 バリデーション
  4-2-1 バリデーションルールの指定方法
  4-2-2 バリデーションルール
  4-2-3 バリデーションの利用
  4-2-4 バリデーション失敗時の処理
  4-2-5 ルールのカスタマイズ
 4-3 レスポンス
  4-3-1 さまざまなレスポンス
  4-3-2 リソースクラスを組み合わせたREST APIレスポンスパターン
 4-4 ミドルウェア
  4-4-1 ミドルウェアの基本
  4-4-2 デフォルトで用意されているミドルウェア
  4-4-3 独自ミドルウェアの実装

Chapter 5 データベース

 5-1 マイグレーション
  5-1-1 マイグレーション処理の流れ
  5-1-2 マイグレーションファイルの作成
  5-1-3 定義の記述
  5-1-4 マイグレーションの実行とロールバック
 5-2 シーダー
  5-2-1 シーダーの作成
  5-2-2 シーダークラスを利用するための設定
  5-2-3 シーディングの実行
  5-2-4 Fakerの利用
  5-2-5 Factoryを利用する例
 5-3 Eloquent
  5-3-1 クラスの作成
  5-3-2 規約とプロパティ
  5-3-3 データ検索・データ更新の基本
  5-3-4 データ操作の応用
  5-3-5 関連性を持つテーブル群の値をまとめて操作する(リレーション)
  5-3-6 実行されるSQLの確認
 5-4 クエリビルダ
  5-4-1 クエリビルダの書式
  5-4-2 クエリビルダの取得
  5-4-3 処理対象や内容の特定
  5-4-4 クエリの実行
  5-4-5 トランザクションとテーブルロック
  5-4-6 ベーシックなデータ操作
 5-5 リポジトリパターン
  5-5-1 リポジトリパターンの概要
  5-5-2 リポジトリパターンの実装
  5-5-3 リファクタリング

Chapter 6 認証と認可

 6-1 セッションを利用した認証
  6-1-1 認証を支えるクラスとその機能
  6-1-2 認証処理を理解する
  6-1-3 データベース・セッションによる認証処理
  6-1-4 フォーム認証への適用
  6-1-5 認証処理のカスタマイズ
  6-1-6 パスワードリセット
 6-2 トークン認証
  6-2-1 api_tokenを保持するテーブルの作成
  6-2-2 シーダーを用いたレコードの作成
  6-2-3 独自認証プロバイダの作成
  6-2-4 トークン認証の利用方法
 6-3 JWT認証
  6-3-1 tymon/jwt-authのインストール
  6-3-2 tymon/jwt-authの利用準備
  6-3-3 tymon/jwt-authの利用方法
  6-3-4 トークンの発行
 6-4 OAuthクライアントによる認証・認可
  6-4-1 Socialite
  6-4-2 GitHub OAuth認証
  6-4-3 動作拡張
  6-4-4 OAuthドライバの追加
 6-5 認可処理
  6-5-1 認可処理を理解する
  6-5-2 認可処理
  6-5-3 Bladeテンプレートによる認可処理

Chapter 7 イベントとキューによる処理の分離

 7-1 イベント
  7-1-1 イベントの基本
  7-1-2 イベントの作成
  7-1-3 イベントを利用した堅実なオブザーバーパターン
  7-1-4 イベントのキャンセル
  7-1-5 非同期イベントを利用する分離パターン
 7-2 キュー
  7-2-1 キューの基本
  7-2-2 非同期実行ドライバの準備(Queueドライバ)
  7-2-3 キューの仕様
  7-2-4 キューによるPDFファイル出力パターン
  7-2-5 Supervisorによる常駐プログラムパターン
  7-2-6 手軽な分散処理パターン
 7-3 イベントとキューによるCQRS
  7-3-1 CQRS(コマンドクエリ責務分離)
  7-3-2 アプリケーション仕様
  7-3-3 アプリケーション実装の準備
  7-3-4 口コミ登録機能の実装
  7-3-5 口コミ投稿コントローラ実装
  7-3-6 リスナークラスによるElasticsearch操作
  7-3-7 Commandの実行・Queryの実装

Chapter 8 コンソールアプリケーション

 8-1 Commandの基礎
  8-1-1 クロージャによるCommandの作成
  8-1-2 クラスによるCommandの作成
  8-1-3 Commandへの入力
  8-1-4 Commandからの出力
  8-1-5 Commandの実行
 8-2 Commandの実装
  8-2-1 サンプル実装の仕様
  8-2-2 Commandの生成
  8-2-3 ユースケースクラスとサービスクラスの分離
  8-2-4 ユースケースクラスの雛形作成
  8-2-5 サービスクラスの実装
  8-2-6 ユースケースクラスの実装
  8-2-7 Commandクラスの仕上げ
 8-3 バッチ処理の実装
  8-3-1 バッチ処理の仕様
  8-3-2 Commandクラスの実装
  8-3-3 ユースケースクラスの実装
  8-3-4 Commandクラスの仕上げ
  8-3-5 バッチ処理のログ出力
  8-3-6 スケジュールタスクによるバッチ処理実行

Chapter 9 テスト

 9-1 ユニットテスト
  9-1-1 テスト対象クラス
  9-1-2 テストクラスの生成
  9-1-3 テストメソッドの実装
  9-1-4 データプロバイダの活用
  9-1-5 例外のテスト
  9-1-6 テストの前処理・後処理
  9-1-7 テストの設定
 9-2 データベーステスト
  9-2-1 テスト対象のテーブルとクラス
  9-2-2 データベーステストの基礎
  9-2-3 Eloquentクラスのテスト
  9-2-4 サービスクラスのテスト
  9-2-5 モックによるテスト(サービスクラス)
 9-3 WebAPIテスト
  9-3-1 WebAPIテスト機能
  9-3-2 テスト対象のAPI
  9-3-3 APIテストの実装
  9-3-4 WebAPIテストに便利な機能

Chapter 10 エラーハンドリングとログの活用

 10-1 エラーハンドリング
  10-1-1 エラー表示
  10-1-2 エラーの種別
  10-1-3 エラーハンドリングの基本
  10-1-4 Fluentdの活用
  10-1-5 例外の描画テンプレート変更
  10-1-6 エラーハンドリングパターン
 10-2 ログ活用パターン
  10-2-1 ログの基本
  10-2-2 ログ出力設定
  10-2-3 Elasticsearchによるカスタムログドライバ実装

第三部 アプリケーション開発手法

Chapter 11 テスト駆動開発の実践

 11-1 テスト駆動開発とは
  11-1-1 コツはできるだけ小さく
  11-1-2 サンプルアプリケーション仕様
  11-1-3 データベース仕様
  11-1-4 APIエンドポイント
 11-2 APIエンドポイントの作成
  11-2-1 アプリケーションの作成・事前準備
  11-2-2 最初のテスト
  11-2-3 テストメソッドに何をどのように書くか
  11-2-4 最低限の実装
  11-2-5 2つ目以降のテスト
  11-2-6 1つのテストメソッドに検証は1つの原則
  11-2-7 テストコードの確認
 11-3 テストに備えるデータベース設定
  11-3-1 データベース設定
  11-3-2 マイグレーション・モデル・ファクトリ
  11-3-3 初期データ投入用シーダーの準備
 11-4 データベーステスト
  11-4-1 テスト用トレイトの利用・初期データの投入
  11-4-2 データベースが絡むテスト
  11-4-3 仮実装で素早くテストを成功させる
  11-4-4 最初のリファクタリング
  11-4-5 返却値の内容を検証
  11-4-6 成功が分かっているテストの追加
  11-4-7 データ追加の検証
  11-4-8 既存テストの修正
  11-4-9 バリデーションテスト
 11-5 リファクタリングユースケース
  11-5-1 そろそろコントローラを使う
  11-5-2 フレームワークの標準に寄せていくリファクタリング①
  11-5-3 正確なテストが書けない時の対処法
  11-5-4 フレームワークの標準に寄せていくリファクタリング②
  11-5-5 サービスクラスへの分離

この書籍の購入

  • Amazonで購入する
  • 楽天で購入する