【2023最新】「laravel」のおすすめ本!人気ランキング
この記事では、「laravel」のおすすめ本をランキング形式で紹介していきます。インターネット上の口コミや評判をベースに集計し独自のスコアでランク付けしています。
Amazonで詳しく見る
紹介文
2017年刊行後大好評の『PHPフレームワークLaravel入門』が2019年9月リリースのバージョン6に対応した改訂版!
PHPフレームワークのロングセラー定番解説書が、新バージョン対応で改訂! 本書は、Laravelのインストールから、フレームワークの中心になるModel-View-Controller(MVC)の使い方、開発に役立つ各種機能をわかりやすく解説した入門書です。新しいディレクティブ(@csrf/@error)、バリデーションルール(増補解説+自作)、Bootstrapによるぺジネーションリンク、Auth(Laravel/uiパッケージ)の使い方などの項目を追加しました!
Chapter 1 Laravelを準備する
1-1 PHPフレームワークとLaravel
PHP開発の問題点
フレームワークの導入
Laravelの特徴
Laravelのサイト
Composerについて
Laravelをインストールする
Laravelのバージョンについて
1-2 Laravelを使ってみる
Laravel開発の手順
プロジェクトの作成
アプリケーションを実行する
XAMPPにデプロイする
指定のアドレスで公開する
Chapter 2 ルーティングとコントローラ
2-1 ルーティング
アプリケーションの構成
「app」フォルダについて
ルーティングと「routes」フォルダ
ルート情報の記述
トップページのルート情報
ルート情報を追加する
HTMLを出力する
ヒアドキュメントを使う
ルートパラメータの利用
必須パラメータと任意パラメータ
2-2 コントローラの利用
MVCとコントローラ
コントローラの作成
HelloController.phpをチェックする
アクションを追加する
ルートパラメータの利用
複数アクションの利用
シングルアクションコントローラ
リクエストとレスポンス
RequestおよびResponse
Chapter 3 ビューとテンプレート
3-1 PHPテンプレートの利用
ビューについて
PHPテンプレートを作る
ルートの設定でテンプレートを表示する
コントローラでテンプレートを使う
値をテンプレートに渡す
ルートパラメータをテンプレートに渡す
クエリー文字列の利用
3-2 Bladeテンプレートを使う
Bladeを使う
フォームを利用する
CSRF対策について
アクションの用意
POSTのルート設定
3-3 Bladeの構文
値の表示
@ifディレクティブ
特殊なディレクティブ
繰り返しのディレクティブ
@break と @continue
$loopによるループ変数
@phpディレクティブについて
3-4 レイアウトの作成
レイアウトの定義と継承
@sectionと@yield
ベースレイアウトを作成する
継承レイアウトの作成
コンポーネントについて
コンポーネントを作成する
サブビューについて
@eachによるコレクションビュー
3-5 サービスとビューコンポーザ
ビューコンポーザとは?
サービスとサービスプロバイダ
HelloServiceProviderを作成する
クロージャでコンポーザ処理を作る
サービスプロバイダの登録
ビューコンポーザを利用する
ビューコンポーザクラスの作成
Chapter 4 リクエスト・レスポンスを補完する
4-1 ミドルウェアの利用
ミドルウェアとは?
ミドルウェアを作成する
HelloMiddlewareクラス
HelloMiddlewareを修正する
ミドルウェアの実行
ビューとコントローラの修正
リクエストとレスポンスの流れ
レスポンスを操作する
グローバルミドルウェア
ミドルウェアのグループ登録
4-2 バリデーション
ユーザー入力時の問題
バリデーションを利用する
バリデーションの基本処理
エラーメッセージと値の保持
フィールドごとにエラーを表示
@errorディレクティブを使う
バリデーションの検証ルール
4-3 バリデーションをカスタマイズする
フォームリクエストについて
フォームリクエストの作成
HelloRequestクラスの基本コード
メッセージのカスタマイズ
バリデータを作成する
クエリー文字列にバリデータを適用する
エラーメッセージのカスタマイズ
条件に応じてルールを追加する
オリジナルバリデータの作成
HelloValidatorを作成する
HelloValidatorのルールを使用する
Validator::extendを利用する
バリデーションルールを作る
Myruleを使ってみる
4-4 その他のリクエスト・レスポンス処理
CSRF対策とVerifyCsrfToken
クッキーを読み書きする
リダイレクトについて
Chapter 5 データベースの利用
5-1 データベースを準備する
モデルとデータベース
Laravelのアプローチ
SQLiteデータベースを準備する
DB Browser for SQLiteの導入
DB Browserのインストール
DB Browserを起動する
データベースファイルを作る
テーブルを作成する
SQL利用の場合
ダミーのレコードを追加する
DB利用のための手続き
SQLiteの設定
MySQL/PostgreSQLの設定
.envの環境変数について
5-2 DBクラスの利用
DBクラスとは?
パラメータ結合の利用
DB::insertによるレコード作成
DB::updateによる更新
DB::deleteによる削除
SQLクエリがすべて?
5-3 クエリビルダ
クエリビルダとは?
DB::tableとget
指定したIDのレコードを得る
演算記号を指定した検索
whereとorWhere
whereRawによる条件検索
並び順を指定する「orderBy」
offsetとlimit
insertによるレコード追加
updateによるレコード更新
deleteによるレコード削除
5-4 マイグレーションとシーディング
マイグレーションとは?
マイグレーションファイルの生成
マイグレーション処理について
テーブル生成の処理
テーブルの削除処理
マイグレーションを試す
シーディングについて
シーダーファイルの作成
シーディング処理について
シーダーファイルの登録
シーディングを実行する
Chapter 6 Eloquent ORM
6-1 Eloquentの基本
ORMとは?
モデルを作成する
モデルクラスのソースコード
PersonControllerを作成する
index.blade.phpを作成する
Personモデルで全レコードを得る
Personクラスにメソッドを追加する
IDによる検索
6-2 検索とスコープ
whereによる検索
スコープの利用
ローカルスコープについて
nameをスコープにする
スコープを組み合わせる
グローバルスコープについて
グローバルスコープを作成する
Scopeクラスを作成する
ScopePersonクラスを作る
6-3 モデルの保存・更新・削除
モデルの新規保存
モデルを修正する
add.blade.phpを作成する
addおよびcreateアクションを追記する
保存処理の流れ
モデルを更新する
editおよびupdateアクションを追記する
モデルの削除
モデルとDBクラスの共通性
6-4 モデルのリレーション
モデルのリレーションとは?
boardsテーブルを利用する
マイグレーションの作成
モデルの作成
BoardControllerの作成
テンプレートの作成
2つのテーブルの関係について
has One結合
has Many結合
belongs To結合
関連レコードの有無
withによるEagerローディング
Chapter 7 RESTfulサービス/セッション/ペジネーション/認証/テスト
7-1 リソースコントローラとRESTful
RESTfulとは?
マイグレーションの作成
モデルの作成
シードの作成
シードの実行
RESTコントローラの作成
リソースコントローラについて
indexおよびshowを作成する
レコードの追加
フォームを/hello/restに埋め込む
RESTfulサービスにするために
7-2 セッション
セッションについて
セッションを利用する
セッション利用アクションを作る
データベースをセッションで使う
セッションの保存先をデータベースに変更する
セッション用マイグレーションの作成
7-3 ペジネーション
ペジネーションとは?
DBクラスとsimplePaginate
ページの表示を作成する
DBクラスとモデル
ソート順を変更する
paginateメソッドの利用
リンクのテンプレートを用意する
Bootstrapの利用について
7-4 ユーザー認証
認証機能とAuth
Authをセットアップする
Userモデルクラスについて
/helloでログインをチェックする
Authの認証関係ページ
特定ページの保護
ログイン処理の実装
7-5 ユニットテスト
ユニットテストとPHPUnit
テスト用データベースの準備
ダミーレコードの用意
ユニットテストのスクリプト作成
一般的な値のテスト
指定アドレスにアクセスする
データベースをテストする
ユニットテスト以外のテスト
7-6 今後の学習
フロントエンドとの連携
サービス関連
キューとジョブおよびタスク
Artisanコマンドの開発
Amazonで詳しく見る
紹介文
デジタルハリウッドの講師が教えるLaravel入門書の登場!
デジタルハリウッド・ジーズアカデミー人気講師直伝!
PHPの人気フレームワークLaravel(ララベル)で
Webアプリ開発に挑戦しよう!
【本書の概要】
デジタルハリウッド・ジーズアカデミーなどでLaravel講座をもつ著者が、多くの受講生の声を反映して執筆したLaravelの入門書です。
サンプル作りを通して、LaravelによるWebアプリの設計・作成の基本、ルーティング、リエクスト処理、ビュー、認証、ページネーション、モデルのリレーション、ファイルアップロードの基本などを一通り学ぶことができます。
【Laravelとは】
LaravelはMicrosoftの.NETの開発に関わっていたTaylor Otwell氏によって開発され、
PHPの世界で最も人気のあるフレームワークの1つです。
【本書の開発環境について】
本書の開発環境はAWS Cloud9を利用しています。
WindowsもしくはmacOSでLaravelの環境を作ろうとすると、環境構築に1、2時間を要してしまうことがかなりあります。
その点、ブラウザだけで開発できるAWS Cloud9を利用すれば、開発環境を手軽に設定できるため非常に効率よく学習することができます。
【Laravelのバージョン】
Laravel 6.x(LTS)
【読者対象】
LaravelによるWebアプリ開発初心者
【本書のゴール】
本書を読み終わった後、基本的なLaravelの利用方法を習得できることを目的としています。
【著者プロフィール】
山崎大助(やまざき・だいすけ)ジーズアカデミー学校長。デジタルハリウッド大学大学院 教授。
専門はフロントエンド、Webアプリケーション。
2013年 全世界で9人しかいないMicrosoft MVP(Bing Maps Development)の1人として受賞、
現在もMicrosoft MVP(Developer Technologies)を受賞している。
著書に『レスポンシブWebデザイン「超」実践デザイン集中講義』(SBクリエイティブ)、
『jQueryレッスンブック jQuery2.X/1.X対応』(ソシム)がある。
公開しているWebサービスに『LaravelDB.com』『BingMaps GO!』がある。
Chapter 1 PHPフレームワーク「Laravel」とは
01 Laravelフレームワークとは
02 まとめ
Chapter 2 開発環境の準備
01 Laravelの開発環境について
02 AWS Cloud9を利用する
03 まとめ
Chapter 3 Laravelのインストール
01 本書でよく使うコマンドやコードについて
02 AWS Cloud9の環境準備
03 Laravelフレームワークの準備
04 毎回使うコマンド
05 データベース環境の準備
06 MySQLを使用しない場合(SQLiteを選択する)
07 Laravelのルートディレクトリ:フォルダ構成について
08 まとめ
Chapter 4 練習アプリ:本管理アプリを作る
01 練習アプリ「本管理アプリ」を作る流れ
02 AWS Cloud9の設定を変更する:隠しファイルを表示する
03 MySQLデータベースとの接続を設定する
04 AWS Cloud9の設定を変更する:自動保存の設定にする
05 まとめ
Chapter 5 本管理アプリ:データベースにテーブルを作成する
01 テーブルを定義するマイグレーションファイルについて
02 マイグレーションファイルでbooksテーブルを定義する
03 まとめ
Chapter 6 本管理アプリ:モデルを作成する
01 Eloquent(エロクイント)モデルを利用する
02 モデルのルールを変更する方法
03 まとめ
Chapter 7 本管理アプリ:ルート定義を作成する
01 ルート定義について
02 ルート定義のスケルトンを作成する
03 まとめ
Chapter 8 本管理アプリ:ログイン認証機能を追加する
01 ログイン画面とレジスター画面を確認する
02 ログイン機能とレジスター機能を実装する
03 ログイン実装用のコマンドについて
04 まとめ
Chapter 9 本管理アプリ:レイアウトとビューを作成する
01 ビューについて(レイアウト・テンプレート)
02 レイアウトとビューを作成する
03 Bladeテンプレートの変数について
04 「JavaScript&CSS」ファイルの配置場所は「public」フォルダになる
05 まとめ
Chapter 10 本管理アプリ:本の追加登録処理を作成する
01 本の追加登録処理を作成する
02 送信データの確認を行う/本の登録処理を作成する
03 まとめ
Chapter 11 本管理アプリ:本を一覧表示する機能を作成する
01 登録している「本」を一覧表示する機能を作成する
02 Bladeテンプレートの制御構文について
03 まとめ
Chapter 12 本管理アプリ:本のデータ削除機能を作成する
01 本のデータ削除機能を作成する
02 課題1(課題1.1、1.2)
03 課題1(課題1.1、1.2)の解答について
04 課題1.1の解答
05 課題1.2の解答
06 まとめ
Chapter 13 本管理アプリ:ルート定義以外の各処理をコントローラに移動する
01 ルート定義からコントローラに各処理を移動する
02 コントローラについて
03 ルーティング・コントローラ・ビューの流れ
04 BooksControllerを作成(更新処理)する
05 コントローラへ登録処理を追加する
06 課題2(課題2.1、2.2、2.3)
07 課題2.1の解答
08 課題2.2の解答
09 課題2.3の解答
10 まとめ
Chapter 14 本管理アプリ:ページネーションを使用する
01 ページネーションを使用する
02 まとめ
Chapter 15 本管理アプリ:SESSIONを利用する
01 SESSIONの仕組み
02 SESSIONを利用する
03 まとめ
Chapter 16 本管理アプリ:ログイン認証機能を追加する
01 ログイン認証の処理を追加する
02 Route::groupを使ったログイン認証について
03 ログイン認証したユーザー情報を取得する
04 ログイン認証したユーザーが登録した情報のみを表示させる
05 まとめ
Chapter 17 本管理アプリ:ファイルのアップロード機能を追加する
01 ファイルのアップロード機能を追加する
02 まとめ
Chapter 18 本管理アプリ:モデル記述コードのチェック(tinker)・テストデータの自動生成(Seeder)を行う
01 tinkerコマンドでモデルの記述コードを確認する
02 Seeder(テストデータを自動生成)による処理を実装する
03 まとめ
Chapter 19 本管理アプリ:バリデーションメッセージを日本語化する
01 英語のバリデーションメッセージを日本語化する
02 まとめ
Chapter 20 本管理アプリ:デバッグ用ヘルパー関数を利用する
01 デバッグ用のddd()関数を利用する
02 まとめ
Chapter 21 本管理アプリ:phpMyAdmin管理ツールをインストールする
01 phpMyAdmin管理ツールをインストールする
02 まとめ
Chapter 22 モデルで利用できる便利なメソッド
01 モデルのメソッド
02 まとめ
Chapter 23 Eloquentリレーションから見るモデルとリレーションの関係
01 Eloquentリレーションについて
02 まとめ
Amazonで詳しく見る
紹介文
2017年9月刊行の『PHPフレームワークLaravel入門』を補足する続編。「これも知りたかった」という声に応えました!
アプリケーション開発には、基本のMVC以外の機能実装が非常に重要になります。本書は、既刊『PHPフレームワーク Laravel入門』を読み終わった方に向けて、もっと知りたいという要望の高かったMVC以外の機能実装の手法を解説します。コア機能の詳細から、サービス、DBクラスとEloquent、ジョブ管理、フロントエンド(Vue.js、React、Angular)との連携、ユニットテスト、Artisanコマンドまで詳細にわかります。Laravel5.8.9準拠。
Chapter 1 Laravelのコア機能を考える
1-1 ルーティング
ベースプロジェクトの用意
ルートの基本
名前付きルートについて
whereによる正規表現ルート
HTTPステータスコードによるエラー表示
ルートグループについて
ミドルウェアの適用
名前空間とグループルート
ルートとモデルの結合
1-2 設定情報と環境変数
設定情報とConfigクラス
設定情報を更新する
環境変数の利用
1-3 ファイルシステム
Storageクラスについて
ファイルアクセスの実際
localとpublic
publicディスクにアクセスする
ファイル情報を取得するメソッド
ファイル情報取得メソッドでファイル情報を表示する
ファイルのコピー・移動・削除
ファイルのダウンロード
ファイルのアップロード処理メソッド(putFile)
ディレクトリの管理
filesystem.phpについて
「logs」ディスクを用意する
FTPディスクを作成する
1-4 リクエストとレスポンス
Requestについて
フォームをまとめて処理する
Responseと出力コンテンツ
フォームの必要な項目のみ利用する
フォーム値の保管とold関数
クエリパラメータの利用
クエリパラメータを指定したリダイレクト
Chapter 2 サービスとミドルウェア
2-1 サービスコンテナと結合
DIとサービスコンテナ
サービスとしてのクラスを用意する
明示的にインスタンスを生成する
引数が必要なクラスのインスタンス取得
サービスコンテナへの結合
サービスとシングルトン
MySerivceをシングルトンで結合する
引数を必要とする結合
インターフェイスを利用した粗な結合
MyServiceInterface実装クラスを作成する
結合時のイベント処理について
2-2 ファサードの利用
サービスとサービスプロバイダ
サービスプロバイダを作成する
ファサードとは?
MyServiceファサードを作成する
ファサードを登録する
MyServiceファサードを使う
2-3 ミドルウェアの利用
リクエストを拡張するミドルウェア
MyMiddlewareミドルウェアを作る
MyMiddlewareミドルウェアの利用
beforeとafterについて
after処理を追加する
ミドルウェアの利用範囲と設定
グローバルミドルウェアの利用
Chapter 3 データベースの活用
3-1 DBクラスとクエリビルダ
DB::selectの利点と欠点
クエリビルダを使う
tableとselectを使う
whereメソッドによる検索条件
あいまい検索はどうする?
whereRawは書き方に注意!
最初・最後のレコード取得
指定IDのレコード取得(find)
特定のフィールドだけ取得(pluck)
chunkByIdによる分割処理
orderByとchunkを使う
一定の部分だけを抜き出して処理する
さまざまなwhere
3-2 ペジネーション
paginateによるペジネーション
ナビゲーションリンクの表示
Eloquent利用の場合
カスタムナビゲーションリンクの作成
Paginatorのメソッド
ナビゲーションリンクのタグについて
3-3 EloquentとCollection
Eloquentとモデルクラス
モデルの基本ルール
Personモデルの基本形
モデルとコレクション
コレクションの機能:rejectとfilter
コレクションの機能:diffによる差分取得
コレクションの機能:modelKeysとonlyおよびexcept
コレクションの機能:mergeとunique
mapによるコレクション生成
3-4 モデルの拡張
カスタムコレクションの利用
アクセサについて
既存のプロパティを変更する
ミューテータについて
配列でデータを保存する
JSON形式でのレコード取得(toJson)
JavaScriptからアクセスする
3-5 Scoutによる全文検索
Scoutとは?
全文検索を利用する
インデックスの操作
TNTSearchを利用する
toSearchableArrayの実装
Chapter 4 キュー・ジョブ・イベント・スケジューラ
4-1 キューとジョブ
キューとは何か?
ジョブを作成する
ジョブ用プロバイダを作成する
MyJobをディスパッチする
データベースにアクセスする
非同期に対応させる
ワーカを実行する
キューテーブルを確認する
ワーカ実行コマンドについて
特定のキューを指定する
クロージャをキューに登録する
4-2 イベントの利用
イベントとは?
EventServiceProviderについて
PersonEventについて
PersonEventListenerについて
PersonEventを発行する
購読について
イベントディスカバリについて
キューを利用してイベントを発行する
ジョブか? イベントか?
4-3 タスクとスケジューラ
タスクを実行する
/app/Console/Kernel.phpについて
Scheduleクラスの「コマンドの実行」:execとcommandメソッド
Artisanコマンドを実行する「command」メソッド
クロージャで処理を実行する
invoke実装クラスをcallする
ジョブをinvoke化する
jobメソッドによるジョブ実行
Chapter 5 フロントエンドとの連携
5-1 Vue.jsを利用する
Vue.jsのセットアップ
コンポーネントを利用する
コンポーネントを作成する
axiosでJSONデータを取得する
5-2 Reactの利用
React利用のセットアップ
package.jsonについて
Reactを利用する
アプリケーションを実行する
Exampleコンポーネントについて
MyComponentを作る
クライアント=サーバー通信について
5-3 Angularの利用
LaravelはAngular未対応!
Angularコンポーネントを利用する
AngularアプリとLaravelアプリのビルド
Angularの開発手順について
コンポーネントを作成する
axiosでサーバー通信する
Chapter 6 ユニットテスト
6-1 コントローラーのテスト
Laravel開発とテスト
設定ファイルphpunit.xmlについて
2つのテスト用スクリプト
/tests/Unit/ExampleTest.phpについて
/tests/Feature/ExampleTest.phpについて
コントローラーをテストする
6-2 モデルのテスト
テスト用データベースの準備
マイグレーションの用意
シーディングの用意
モデルのテストを行う
モデルを利用する
テーブルの初期化について
シードを利用する
6-3 ファクトリの利用
ファクトリを作成する
ファクトリを使ってテストする
ステートを設定する
ステートを利用する
コールバックの設定
6-4 モックの活用
ジョブをテストする
クロージャでディスパッチ状況をチェックする
イベントをテストする
コントローラーでイベントを発行させる
キューをテストする
特定のキューを調べるには?
サービスをテストする
クラスをモックする
PowerMyServiceをモックする
Chapter 7 Artisan CLIの開発
7-1 Artisanコマンドの利用
Artisanコマンドについて
dump-serverの利用
dump-serverを起動する
Tinkerの利用
Tinkerの設定ファイルの作成
7-2 スクリプト内からArtisanを使う
Artisanクラスの利用
実行結果を受け取るには?
オプションを設定する
7-3 Artisanコマンド開発
Artisanコマンドを作成する
MyCommand.phpの内容を確認する
シグネチャと説明を用意
コマンドの出力を作成するhandleメソッド
引数を利用する
可変長引数の利用
オプションの利用
インタラクティブな操作
複数項目の選択
出力の形式について
テーブル出力について
クロージャコマンドについて
Amazonで詳しく見る
紹介文
Web職人たちから絶大な支持を集めるPHPフレームワーク「Laravel」の最新版Laravel 8の解説書。待望の第2弾!
Web職人たちから圧倒的な支持を集めているPHPフレームワーク「Laravel」を使ったWebアプリケーション開発の実践的な指南書。
【1】最新のLaravel 8系に対応!
【2】第一線で活躍する著者陣が、大規模化・複雑化するWebアプリケーションを開発するための新しい設計技法、技術を詳解。
【3】MVCに代わりモダンなPHPアプリケーション開発で採用が増えている「ADR」とは?
【4】テストコードによる動作検証の基本から、Laravelを使ったテスト駆動開発の導入シナリオまで。
【5】エラーハンドリングやログ収集など運用に欠かせないノウハウも充実。
Web職人たちから圧倒的な支持を集めているPHPフレームワーク「Laravel」を使ったWebアプリケーション開発の実践的な指南書。最新バージョンとなるLaravel 8に合わせて、定番の1冊を改訂。
第一部 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 サービスクラスへの分離
INDEX
謝辞
著者紹介