関連サイト
本書の関連ページが用意されています。
内容紹介
より快適なWebアプリ開発を実践できるPHPフレームワークの解説書。バージョン5.1 LTS(長期サポート版)に対応!
Laravelへの移行・普及が世界的に加速しています。既存のフレームワークと比べて、Laravelには多数の長所があります。より柔軟性がある、読み書きがしやすい、データベースと連携しやすい、最新PHPへの対応が早い、ユニットテストが整っている、英文ドキュメントが充実、など。本書では、こうした長所を有するLaravelについて、基礎知識から実践までを学べます。
■構成
Chap.01 Laravelの概要
Chap.02 Laravelの基本
Chap.03 データベース
Chap.04 フレームワークの機能
Chap.05 フレームワークの拡張
Chap.06 テスト
Chap.07 実践的なアプリケーション構築
Chap.08 Laravelの実践
■「はじめに」より
本書は、執筆陣が様々な普及活動や開発現場で蓄積した知見に基づき、これからLaravelを学ぶ初学者はもちろん、既に活用している開発者にも参考になる構成内容を心掛けました。順を追ってすべてを読破する必要はなく、開発に求められる部分を読み進めることで、Laravelの活用が十分に理解できるはずです。本書が開発者の皆様のお役に立てるならば幸いです。
■Chapter 01より
開発速度を上げ、効率を向上できるのは、誰にとってもメリットがあります。日本のLaravel紹介ページであるlaravel.jpで紹介されている、Jeff Madsen氏のコメントを引用しましょう。「Laravelはオフィスに夜遅くまで残りたくない人のためのフレームワークです」
書誌情報
- 著者: 新原雅司, 竹澤有貴, 川瀬裕久, 大村創太郎, 松尾大
- 発行日: 2016-01-08 (紙書籍版発行日: 2015-12-11)
- 最終更新日: 2016-01-08
- バージョン: 1.0.0
- ページ数: 448ページ(PDF版換算)
- 対応フォーマット: PDF, EPUB
- 出版社: インプレス
対象読者
PHPによるWebアプリケーション開発に携わるプログラマー(企業内や個人など)、PHPの基本知識を習得していることを前提とする(PHP中級者)
著者について
新原雅司
1×1株式会社代表取締役。PHPをメインにWebシステムの開発や技術サポートを主業務としている。関西でPHPコミュニティの運営や技術イベントでの講演を行っている。
竹澤有貴
株式会社アイスタイル所属。PHPのWebアプリケーション開発をメインに、Java、Androidアプリケーション開発を手がけている。国内PHPコミュニティやカンファレンスなどで講演を行っている。
川瀬裕久
新潟県在中。Laravel初期より国内での普及をはかろうと奮闘。OS開発から官公庁のシステム、パソコンパッケージなど多彩な開発に従事。現在、Laravel公式ドキュメントの日本語版提供や各種解説記事をブログで発信中。
大村創太郎
大阪を拠点に、主に業務系のWebデータベースシステムの開発・運用に従事。関西PHPユーザーグループのスタッフとして、カンファレンスの運営や講演なども行っている。
松尾大
PHP/Java等を使用したWebアプリケーション開発に従事。最近はマネージメントの業務が増えている。福岡でのPHPコミュニティへの参加・講演を行っている。
目次
はじめに
目次
Chap.01 Laravelの概要
- 1-1 Laravelとは/1-1-1 Laravelとは/1-1-2 Laravelの特徴
- 1-1-3 フレームワークによる開発
- 1-1-4 開発情報
- 1-2 環境設定/1-2-1 Windows/OS Xにおける開発環境の構築
- 1-2-2 Linuxにおける開発環境の構築
- 1-2-3 Laravel Homestead
- 1-2-4 Laravel Homesteadの設定
- 1-2-5 Laravel Homesteadの実行
- 1-2-6 Laravel Homestead環境への接続
- 1-3 Composer/1-3-1 Composerとは
- 1-3-2 ローダーの仕組み
- 1-3-3 Composerコマンド
Chap.02 Laravelの基本
- 2-1 はじめてのLaravel/2-1-1 Laravelのインストール
- 2-1-2 ディレクトリ構造
- 2-1-3 アプリケーションの設定
- 2-1-4 Artisanコマンド
- 2-2 はじめてのアプリケーション/2-2-1 アプリケーション構造
- 2-2-2 アプリケーションの準備
- 2-2-3 はじめてのルート定義
- 2-2-4 はじめてのビュー
- 2-2-5 はじめてのORM
- 2-2-6 はじめてのコントローラ
- 2-2-7 はじめてのフォーム
- 2-3 基本コンポーネント/2-3-1 環境設定
- 2-3-2 リクエスト
- 2-3-3 レスポンス
- 2-3-4 ルーティング
- 2-3-5 ミドルウェア
- 2-3-6 コントローラ
- 2-3-7 バリデーション
Chap.03 データベース
- 3-1 データベースへの接続設定
- 3-1-1 サポートしているデータベース
- 3-1-2 接続設定
- 3-2 マイグレーション/3-2-1 マイグレーションの流れ
- 3-2-2 マイグレーションファイルの作成
- 3-2-3 マイグレーションの実行・ロールバック
- 3-2-4 スキーマビルダ
- 3-2-5 シーダー
- 3-3 DBファサード/3-3-1 DBファサードを利用したクエリ実行
- 3-3-2 接続するデータベースの指定/3-3-3 トランザクション
- 3-3-4 その他の便利なメソッド
- 3-4 クエリビルダ
- 3-4-1 テーブルからのデータ取得(基本編)
- 3-4-2 検索条件の指定
- 3-4-3 JOIN
- 3-4-4 ソート・グルーピング・LimitとOffset
- 3-4-5 UNIONクエリ/3-4-6 サブクエリ
- 3-4-7 データの挿入--insert
- 3-4-8 データの更新/3-4-9 データの削除
- 3-4-10 悲観的ロック/3-4-11 SQLの直接記述--raw
- 3-4-12 主なメソッド一覧
- 3-5 Eloquent ORM/3-5-1 モデルの作成
- 3-5-2 Eloquentモデルの規約およびその変更
- 3-5-3 データの取得
- 3-5-4 データの挿入・更新
- 3-5-5 Mass Assignment
- 3-5-6 データの削除
- 3-5-7 アクセサとミューテータ
- 3-5-8 日付の扱い/3-5-9 シリアライゼーション
- 3-6 リレーション
- 3-6-1 One To One
- 3-6-2 One To Many
- 3-6-3 Many to Many
- 3-6-4 Has Many Through
- 3-6-5 リレーション先のデータ取得
- 3-6-6 N+1問題とEager Loading
- 3-6-7 リレーション先へのデータ更新
Chap.04 フレームワークの機能
- 4-1 認証
- 4-1-1 仕様
- 4-1-2 認証機能の設定
- 4-1-3 Authファサードによる認証処理
- 4-2 キャッシュ/4-2-1 キャッシュストア
- 4-2-2 キャッシュの利用
- 4-3 エラーハンドリング/4-3-1 エラー表示
- 4-3-2 エラーのハンドリング
- 4-3-3 HTTPエラーの送出
- 4-4 ロギング/4-4-1 ロギングの設定
- 4-4-2 ログの出力
- 4-4-3 ロギングのカスタマイズ
- 4-5 イベント/4-5-1 イベントのリスナー
- 4-5-2 イベントの発行
- 4-5-3 イベント操作メソッド
- 4-5-4 EventServiceProvider によるリスナー管理
- 4-5-5 イベントクラス
- 4-5-6 イベントのサブスクライブ
- 4-6 ローカリゼーション/4-6-1 言語ファイル
- 4-6-2 ロケール設定
- 4-6-3 メッセージの取得
- 4-7 メール/4-7-1 設定
- 4-7-2 メールの送信
- 4-7-3 クラウドメールサービスとの連携
- 4-8 ページネーション/4-8-1 ページネーションデータの取得
- 4-8-2 Bladeによるページネーションの表示
- 4-8-3 JSONによるページネーション
- 4-8-4 カスタムページネータ
- 4-9 セッション/4-9-1 設定
- 4-9-2 セッションの操作
- 4-9-3 次のリクエストだけ有効なセッション
Chap.05 フレームワークの拡張
- 5-1 サービスコンテナ/5-1-1 サービスコンテナとは
- 5-1-2 サービスコンテナへのバインド
- 5-1-3 サービスコンテナによる解決
- 5-1-4 サービスコンテナによるDI
- 5-1-5 その他のメソッド
- 5-2 サービスプロバイダ/5-2-1 サービスプロバイダの実装
- 5-2-2 独自サービスプロバイダの実装(Twilioとの連携)
- 5-3 コントラクト/5-3-1 コントラクトのメリット/5-3-2 コントラクトを利用した実装
- 5-3-3 コントラクトを実装した独自クラス
- 5-4 ファサード/5-4-1 ファサードの仕組み
- 5-4-2 独自ファサードの実装
Chap.06 テスト
- 6-1 ユニットテストの基本/6-1-1 PHPUnitによるユニットテスト
- 6-1-2 設定ファイル/6-1-3 テストの記述
- 6-1-4 例外のテスト
- 6-1-5 データプロバイダ
- 6-1-6 テストの依存
- 6-1-7 protected、private宣言されたメソッド
- 6-1-8 コードカバレッジ機能
- 6-1-9 終了時の処理
- 6-2 モックを利用したテスト/6-2-1 Mockery/6-2-2 Mockeryチュートリアル
- 6-2-3 Mockeryリファレンス
- 6-3 モデルファクトリ「Faker」/6-3-1 Fakerの利用方法
- 6-3-2 データベースへの挿入
- 6-3-3 言語の設定
- 6-3-4 各種ダミーデータ
- 6-4 各種アプリケーションのユニットテスト/6-4-1 ミドルウェアのユニットテスト
- 6-4-2 データベースに依存したクラスのテスト
- 6-4-3 データベースを利用するテスト
- 6-5 ファンクショナルテスト/6-5-1 テストクラス/6-5-2 テストヘルパーメソッド
- 6-5-3 クロールによる機能テストメソッド
- 6-5-4 動作を変更するヘルパーメソッド/6-5-5 スタブを利用したファンクショナルテスト
- 6-5-6 認証を含むファンクショナルテスト
Chap.07 実践的なアプリケーション構築
- 7-1 セキュリティ対策/7-1-1 クロスサイトスクリプティング対策
- 7-1-2 SQLインジェクション対策
- 7-1-3 CSRF対策
- 7-2 コマンドラインアプリケーション開発/7-2-1 コマンドラインアプリケーションの作成
- 7-2-2 作成コマンドの登録
- 7-2-3 コマンドオプション・引数の利用
- 7-2-4 対話式コマンドの実装
- 7-2-5 メッセージなどの表示
- 7-2-6 コマンドラインアプリケーションのテスト
- 7-3 代表的な拡張パッケージ/7-3-1 Laravel 5 IDE Helper Generator
- 7-3-2 Laravel Debugbar
- 7-3-3 Laravel Socialite
- 7-3-4 Forms & HTML
- 7-3-5 日本語化パッケージcomja5/7-3-6 Intervention Image/7-3-7 JSON Web Token Authentication
- 7-3-8 Sentinel/7-3-9 パッケージの入手先/7-3-10 開発時にのみ利用するパッケージ
Chap.08 Laravelの実践
- 8-1 サンプルアプリケーションの概要と設計/8-1-1 動作環境/8-1-2 実装する基本的な機能
- 8-1-3 テーブル設計
- 8-1-4 実行方法
- 8-1-5 アプリケーション設計
- 8-2 データベースの準備/8-2-1 マイグレーションの作成
- 8-2-2 データベースの作成
- 8-3 ユーザー登録の実装/8-3-1 ルート
- 8-3-2 ユーザー登録フォーム
- 8-3-3 ユーザー登録のリファクタリング
- 8-3-4 キャプチャ認証によるカスタムバリデート
- 8-4 ログインの実装/8-4-1 ログイン画面/8-4-2 フォームリクエストでのバリデーション
- 8-4-3 ログイン実装
- 8-5 認証機能のカスタマイズ/8-5-1 独自認証ドライバの実装
- 8-5-2 認証コンポーネント
- 8-5-3 認証ドライバの追加
- 8-5-4 ドライバ追加のメリット
- 8-6 ブログ記事管理機能/8-6-1 アクセス制御
- 8-6-2 新規ブログ登録フォームと登録処理
- 8-6-3 記事一覧画面
- 8-6-4 編集フォームと更新処理
- 8-6-5 ブログ記事編集の制御
- 8-6-6 ログインユーザーの表示
- 8-7 ブログ表示・コメント投稿機能/8-7-1 ブログ表示
- 8-7-2 コメントの取得と書き込み