書籍詳細(PHPマイクロフレームワークSlim Webアプリケーション開発)

PHPマイクロフレームワークSlim Webアプリケーション開発 書影

ISBN: 978-4-8026-1252-4

PHPマイクロフレームワークSlim Webアプリケーション開発

著者WINGSプロジェクト 齊藤 新三
監修山田祥寛
出版社ソシム
価格3,600円(税別)
判型B5変判・2色
ページ数480ページ
発売日2020年5月25日
対象レベル初中級

マイクロフレームワークSlimの解説書

「フレームワークとは」という基本的な話題から、「本運用環境」で稼働させるまでを丁寧に解説。VagrantとVirtualBoxを使った仮想環境の構築やHerokuについても扱います。本書掲載のサンプルはダウンロード可能。合わせて読者特典として、PHPUnitを使った単体テストのコンテンツをPDFで提供しています。
全サンプル最新バージョン4.5で動作確認済です。
PHPマイクロフレームワークSlim Webアプリケーション開発 ロゴ

更新履歴

  • 正誤訂正:2020年8月13日 更新

目次

  • 導入編
  • 第1章 PHPフレームワークSlimとは
  • 1-1 フレームワークとは
  • 1-1-1 フレームワークとは何か
  • 1-1-2 フレームワークとライブラリの違い
  • 1-1-3 フレームワークを使うメリットとデメリット
  • 1-2 サーバサイドWeb開発フレームワークの歴史
  • 1-2-1 最初はJava用のフレームワークから
  • 1-2-2 パラダイムシフトはRubyから
  • 1-2-3 PHP用フレームワークの歴史
  • 1-3 軽量フレームワークSlimの特徴
  • 1-3-1 フルスタックフレームワークの特性
  • 1-3-2 軽量フレームワークである
  • 1-3-3 Slimの特徴
  • 1-4 MVCアーキテクチャにおけるSlimのメリット
  • 1-4-1 MVCアーキテクチャとは
  • 1-4-2 MVCアーキテクチャを実現する4種の神器
  • 1-4-3 SlimとMVCとの関係
  • 1-5 本書の役割
  • 1-5-1 本書が目指すところ
  • 1-5-2 本書を学習する上での前提知識
  • 1-5-3 本書の構成
  • 第2章 Slim動作環境の構築
  • 2-1 XAMPPのインストール
  • 2-1-1 XAMPPとは
  • 2-1-2 XAMPPのインストール
  • 2-1-3 Apacheの起動と確認
  • 2-1-4 XAMPPでのドキュメントルート
  • 2-2 Composerのインストール
  • 2-2-1 Composerとは
  • 2-2-2 WindowsへのComposerのインストール
  • 2-2-3 macOSへのComposerのインストール
  • 2-3 ダウンロードサンプルの扱い
  • 2-3-1 Samples.zipについて
  • 2-3-2 スケルトンプロジェクトについて
  • 2-3-3 完成形ソースコード(3章から8章)について
  • 2-3-4 その他の完成形ソースコード(9章以降)について
  • 2-3-5 特典PDF(テスティング)について
  • 第3章 はじめてのSlimアプリと動作原理
  • 3-1 はじめてのSlimプロジェクトを作成する
  • 3-1-1 Slimプロジェクトの作成手順
  • 3-1-2 はじめてのSlimアプリケーションの動作確認
  • 3-2 Slimプロジェクトの作成方法
  • 3-2-1 Slimのフォルダ構成
  • 3-2-2 ComposerコマンドとSlimパッケージの配置
  • 3-2-3 .htaccessの記述と役割
  • 3-2-4 Slimのindex.php
  • 3-2-5 クラスファイルを自動で読み込むautoload.php
  • 3-3 Slimの動作原理
  • 3-3-1 Slimの動作に必要なルーティング登録
  • 3-3-2 ルーティングコールバック関数
  • 3-3-3 Slimの動作とルーティング登録の関係
  • 3-4 Composerの動作と使い方
  • 3-4-1 composer.jsonの記述とセマンティックバージョンニング
  • 3-4-2 既存のcomposer.jsonを利用する
  • 3-4-3 Composerのその他のコマンド
  • 基本編
  • 第4章 Slimのルーティング登録
  • 4-1 リクエストの種類に合わせたルーティング登録
  • 4-1-1 リクエストメソッドごとのルーティング登録
  • 4-1-2 サンプルプロジェクトの作成
  • 4-1-3 POST処理のルーティング登録
  • 4-1-4 各種HTTPメソッドでアクセス可能なPostman
  • 4-2 ServerRequestInterfaceとResponseInterface
  • 4-2-1 リクエストパラメータの取得
  • 4-2-2 引数$requestの正体
  • 4-2-3 引数$responseの正体
  • 4-2-4 PSR-7の実装
  • 4-2-5 コールバック関数中のprint()の正体
  • 4-3 複数のHTTPメソッドに対応できるルーティング登録
  • 4-3-1 すべてのメソッドに対応したany()
  • 4-3-2 アクセスするHTTPメソッドを選べるmap()
  • 4-4 ルーティング登録を便利にする仕組み三種盛り
  • 4-4-1 ルーティングパターンにベースパスを設定する
  • 4-4-2 ルーティングパターンに階層構造を持たせる
  • 4-4-3 ルーティングに名前をつける
  • 4-5 ルーティングの外部ファイル化
  • 4-5-1 index.phpの肥大化を避けるために
  • 4-5-2 ルーティングファイルの分割
  • 4-6 ルーティングプレースホルダ
  • 4-6-1 ルーティングプレースホルダの設定
  • 4-6-2 プレースホルダは複数記述できる
  • 4-6-3 オプションプレースホルダ
  • 4-7 リダイレクト
  • 4-7-1 ルーティング登録としてのリダイレクト
  • 4-7-2 コールバック関数内でリダイレクト
  • 第5章 Slimにおけるビュー
  • 5-1 Slimにおけるビューの扱いとJSONデータ送信
  • 5-1-1 Slimにおけるビューはレスポンスオブジェクト
  • 5-1-2 サンプルプロジェクトの作成
  • 5-1-3 SlimでJSONデータを送信する方法
  • 5-2 テンプレートエンジンTwigとの連携
  • 5-2-1 HTMLコードを分離できるテンプレートエンジン
  • 5-2-2 PHPでのテンプレートエンジン
  • 5-2-3 Slimで利用するテンプレートエンジン
  • 5-2-4 SlimでのTwigを利用して画面を表示させる
  • 5-2-5 SlimでのTwig利用の基本手順
  • 5-2-6 Twigの環境設定
  • 5-3 テンプレート変数
  • 5-3-1 テンプレート変数の基本は波括弧2個
  • 5-3-2 テンプレート変数のドットアクセス
  • 5-3-3 テンプレート変数アクセスのルール
  • 5-3-4 コメント
  • 5-4 フィルタ
  • 5-4-1 フィルタはパイプを記述
  • 5-4-2 Twigのフィルタ一覧
  • 5-4-3 複数のフィルタを併用する
  • 5-5 条件分岐
  • 5-5-1 条件分岐を使う
  • 5-5-2 条件中のissetやemptyは不要
  • 5-5-3 論理演算子は英単語
  • 5-6 ループ
  • 5-6-1 配列のループ
  • 5-6-2 連想配列のループ
  • 5-6-3 カウンタ変数を使ったループ
  • 5-6-4 ループのelseブロック
  • 5-6-5 ループ変数
  • 5-7 その他の便利なTwig構文三種盛り
  • 5-7-1 テンプレート内変数を作成するset
  • 5-7-2 テンプレートの共通部分を別ファイルにできるinclude
  • 5-7-3 変数の内容を表示するdump
  • 第6章 コンテナとDI
  • 6-1 コンテナとその使い方の基本
  • 6-1-1 コンテナとは
  • 6-1-2 サンプルプロジェクトの作成
  • 6-1-3 コンテナの利用に必要なパッケージ
  • 6-1-4 Slimでコンテナを利用する方法
  • 6-1-5 コンテナへの登録方法
  • 6-1-6 コンテナからインスタンスを取得する方法
  • 6-2 Slimとコンテナの関係
  • 6-2-1 get()メソッドの正体
  • 6-2-2 Slimが連携するコンテナはPSR-11
  • 6-3 コンテナを経由した引数
  • 6-3-1 インスタンス生成処理関数に引数を設定する
  • 6-3-2 コンテナ経由で引数を渡すメソッドcall()
  • 6-3-3 call()の第2引数は必ず配列
  • 6-4 Slimでログを扱う方法
  • 6-4-1 SlimではMonologを利用する
  • 6-4-2 Monologの準備3ステップ
  • 6-4-3 ログに書き出す際はログレベルを意識する
  • 6-4-4 Monologの標準ログフォーマット
  • 6-5 コンテナの本当の役割
  • 6-5-1 クラスを直接newすることの問題点
  • 6-5-2 コンテナと依存性注入
  • 第7章 コントローラクラス
  • 7-1 コールバック関数の問題点とコントローラクラス
  • 7-1-1 コールバック関数は肥大化する
  • 7-1-2 サンプルプロジェクトの作成
  • 7-1-3 コントローラクラスの作り方
  • 7-1-4 コントローラクラスのルーティング登録
  • 7-1-5 オートロードの設定
  • 7-1-6 コントローラクラスには複数のメソッドを記述できる
  • 7-2 コントローラクラスとコンテナの連携
  • 7-2-1 コントローラクラス内の$thisはコンテナではない
  • 7-2-2 コンストラクタの引数としてコンテナを受け取る
  • 7-2-3 コントローラクラスでのコンテナの扱い
  • 第8章 ミドルウェア
  • 8-1 ミドルウェアとその作り方
  • 8-1-1 ミドルウェアとは
  • 8-1-2 サンプルプロジェクトの作成
  • 8-1-3 ミドルウェアの作り方
  • 8-1-4 ミドルウェアの利用方法
  • 8-2 ミドルウェア処理の位置
  • 8-2-1 リクエスト処理の前に挿入する場合
  • 8-2-2 処理の挿入位置はhandle()メソッドの記述位置
  • 8-2-3 handle()メソッドの正体
  • 8-2-4 リクエスト処理前後の両方に処理を挿入
  • 8-2-5 ミドルウェアのチェイン
  • 8-3 ミドルウェアにデータを渡す方法
  • 8-3-1 ミドルウェアでコンテナを利用するには
  • 8-3-2 ミドルウェアにコンテナを渡すには
  • 8-3-3 コンテナ以外のデータも渡せるコンストラクタ
  • 8-4 ミドルウェア設定のバリエーション
  • 8-4-1 ルーティンググループにミドルウェアを設定
  • 8-4-2 アプリケーション全体にミドルウェアを設定
  • 実践準備編
  • 第9章 GitHubの利用
  • 9-1 バージョン管理とGit
  • 9-1-1 バージョン管理システムとは
  • 9-1-2 集中型バージョン管理システム
  • 9-1-3 分散型バージョン管理システム
  • 9-1-4 Gitとは
  • 9-2 GitHub
  • 9-2-1 GitホスティングサービスとGitHub
  • 9-2-2 GitHubのアカウント作成
  • 9-2-3 GitHubのリポジトリ作成
  • 9-2-4 GitHubデスクトップの導入
  • 9-2-5 GitHubデスクトップでリポジトリをクローンする
  • 9-3 GitHubを使った基本の開発手順
  • 9-3-1 リポジトリにSlimプロジェクトを作成する
  • 9-3-2 管理対象から除外するファイルを設定する.gitignore
  • 9-3-3 GitHubデスクトップでコミットとプッシュ
  • 9-3-4 GitHubを利用した基本の作業ルーティン
  • 9-4 ブランチとプルリクエスト
  • 9-4-1 ブランチとは
  • 9-4-2 ブランチを作ってみる
  • 9-4-3 ブランチにファイルを追加する
  • 9-4-4 ブランチのファイルを編集する
  • 9-4-5 マージを簡単に行うプルリクエスト
  • 9-4-6 3種のマージ方法
  • 9-4-7 ブランチを削除する
  • 9-4-8 GitHub利用のワークフロー
  • 第10章 仮想環境の利用
  • 10-1 仮想環境
  • 10-1-1 XAMPPの問題点
  • 10-1-2 仮想環境とは
  • 10-1-3 2種の仮想環境
  • 10-1-4 仮想環境のメリット
  • 10-1-5 Webシステム開発で威力を発揮するホスト型仮想環境
  • 10-1-6 ホスト型仮想化アプリケーション
  • 10-1-7 本章で構築する環境
  • 10-2 VirtualBox
  • 10-2-1 VirtualBoxのインストール
  • 10-2-2 VirtualBoxでのVM作成
  • 10-3 Vagrant
  • 10-3-1 Vagrantとは
  • 10-3-2 Vagrantのインストール
  • 10-3-3 Vagrantfileを作成する
  • 10-3-4 Vagrantfileを記述する
  • 10-3-5 VagrantでVMを起動する
  • 10-3-6 VagrantでのVMの停止と破棄
  • 10-4 仮想環境内の構築と設定
  • 10-4-1 仮想環境にログインする
  • 10-4-2 管理者権限ユーザに切り替える
  • 10-4-3 CentOSのパッケージを管理するyumコマンド
  • 10-4-4 Apacheのインストール
  • 10-4-5 Apacheの起動
  • 10-4-6 Apacheのサービス登録
  • 10-4-7 PHPのインストール
  • 10-5 Apacheの設定変更
  • 10-5-1 SocymFirstGitSlimをSocymSlimVBoxに配置
  • 10-5-2 Apacheの設定ファイルの変更
  • 10-5-3 SSH接続先のテキストファイルを編集するvi
  • 10-5-4 ドキュメントルートを変更する
  • 10-5-5 .htaccessを有効にする
  • 10-5-6 Apache設定ファイルの確認と再起動
  • 10-6 SocymFirstGitSlimをSocymSlimVBoxで実行する
  • 10-6-1 GitHubで現在の状態を記録するリリース機能
  • 10-6-2 SocymFirstGitSlimのソースコードを変更する
  • 10-6-3 仮想環境で実行されたSlimアプリの確認
  • 第11章 Herokuの利用
  • 11-1 Webアプリケーションの実行環境とHeroku
  • 11-1-1 共有レンタルサーバ
  • 11-1-2 サーバを1台用意する
  • 11-1-3 クラウド
  • 11-1-4 本運用環境を自動構築してくれるHeroku
  • 11-2 Heroku環境の用意
  • 11-2-1 Herokuアカウントの作成
  • 11-2-2 Herokuアプリの作成
  • 11-2-3 Dynoの種類
  • 11-2-4 Herokuの実行環境は自動判定
  • 11-3 GitHub連携とデプロイ
  • 11-3-1 HerokuとGitHubアカウントを連携させる
  • 11-3-2 HerokuアプリとGitHubリポジトリを連携させる
  • 11-3-3 GitHubからデプロイ
  • 11-3-4 Herokuアプリの動作確認とURL
  • 11-3-5 Dynoの内容の確認
  • 11-4 Herokuでのドキュメントルートの変更
  • 11-4-1 Herokuでのエラー確認
  • 11-4-2 socymfirstslimアプリが動作しない原因
  • 11-4-3 Dynoのドキュメントルート変更
  • 実践編
  • 第12章 データベース連携
  • 12-1 仮想環境へのPostgreSQLのインストール
  • 12-1-1 Herokuの標準データベースはPostgreSQL
  • 12-1-2 PostgreSQLのインストール
  • 12-1-3 データベースの初期化と設定
  • 12-1-4 ユーザとデータベースの作成
  • 12-1-5 PostgreSQLへの接続
  • 12-1-6 テーブルの作成
  • 12-1-7 PHPライブラリのインストール
  • 12-2 データベースへの接続と切断と例外処理
  • 12-2-1 実践編用プロジェクトリポジトリの作成とクローン
  • 12-2-2 SocymSlimMVCプロジェクトの作成
  • 12-2-3 会員情報入力画面の作成
  • 12-2-4 Slimアプリでデータベースにアクセスするコード
  • 12-2-5 Slimでのデータベースアクセスの特徴
  • 12-2-6 PDOによるデータベースへの接続
  • 12-2-7 PDO接続のオプション
  • 12-2-8 データベース接続の切断
  • 12-3 データベース処理の基本
  • 12-3-1 PDOによるデータベース処理手順
  • 12-3-2 連番主キーの取得
  • 12-3-3 PDOインスタンスをコンテナから取得
  • 12-4 データ取得処理
  • 12-4-1 データ取得処理コードの記述
  • 12-4-2 PDOによるデータ取得処理手順
  • 12-4-3 結果表が1行の場合
  • 12-4-4 全データ取得メソッド
  • 12-4-5 結果の連想配列から無駄を排除するフェッチモード
  • 第13章 MVCアーキテクチャの導入
  • 13-1 エンティティモデル
  • 13-1-1 エンティティとは
  • 13-1-2 エンティティクラスの作り方
  • 13-1-3 コントローラクラスでのエンティティの使い方
  • 13-1-4 テンプレートでのエンティティの使い方
  • 13-1-5 テンプレートでの非正常系への対応
  • 13-1-6 エンティティを使った詳細表示の動作確認
  • 13-1-7 エンティティモデルのメリット
  • 13-1-8 エンティティと連想配列の組み合わせ
  • 13-1-9 エンティティ+連想配列を使ったリスト画面の作り方
  • 13-1-10 表示リストがない場合への対応
  • 13-2 DAOモデルとMVCアーキテクチャ
  • 13-2-1 コントローラクラスに散在していくSQLとDAOモデル
  • 13-2-2 DAOクラスの作り方
  • 13-2-3 DAOクラスをコントローラから利用する
  • 13-2-4 MVCアーキテクチャの完成とMVCモデルとは
  • 13-2-5 トランザクションと例外処理の扱い
  • 13-2-6 残りのメソッドをDAOと連携させる
  • 13-3 リダイレクト遷移
  • 13-3-1 登録完了時のURL
  • 13-3-2 データベース更新処理後はリダイレクト
  • 第14章 エラーハンドラ
  • 14-1 エラー画面
  • 14-1-1 showMemberDetailの遷移の種類
  • 14-1-2 エラー画面表示ロジックの実装
  • 14-2 Slimでのエラーの扱いとエラーミドルウェア
  • 14-2-1 Slimでのエラーの扱い
  • 14-2-2 Slimのエラーハンドラはミドルウェア
  • 14-2-3 Slimではルーティングもミドルウェア
  • 14-2-4 addErrorMiddleware()の3個の引数
  • 14-3 エラー画面のカスタマイズ
  • 14-3-1 エラー画面をカスタマイズできるエラーレンダラクラス
  • 14-3-2 デフォルトレンダラクラスとのコンボ
  • 14-3-3 例外の種類に応じて表示画面を分岐
  • 14-3-4 手動で例外を発生させる
  • 14-3-5 例外の投げ直しと$logErrorDetails
  • 14-3-6 $isRedirectフラグの真の働き
  • 14-3-7 エラーレンダラに独自例外を組み込む
  • 14-3-8 その他のメソッドのエラー画面表示を集約する
  • 第15章 Herokuでの実稼働
  • 15-1 Herokuでデータベースの利用
  • 15-1-1 HerokuのDyno作成とGitHub連携
  • 15-1-2 Heroku Postgresの導入
  • 15-2 Config VarsとHeroku Postgresへの接続コード
  • 15-2-1 HerokuのConfig Vars
  • 15-2-2 仮想環境へのConfig Varsの追加
  • 15-2-3 $displayErrorDetailsの値もConfig Varsとする
  • 15-2-4 SocymSlimMVCプロジェクトのDB接続情報の変更
  • 15-2-5 エラー表示切り替えコードの変更

正誤表

該当頁 該当箇所 修正刷
訂正箇所 訂正事項 更新日
p.61 本文 下から2行目 -
2の-d はディレクトリかどうかをチェックした結果を表し、3の-fはファイルかどうかをチェックした結果を表します。 2の-fファイルかどうかをチェックした結果を表し、3の-dディレクトリかどうかをチェックした結果を表します。 2020/08/13
p.193 本文 3行目 -
これについては 7-3-2 項の復習となります。 これについては 7-2-3 項の復習となります。 2020/06/28

FAQ

現在、FAQはありません。

お問い合わせ

書籍に関するご質問や誤りのご報告、ご意見・ご感想などをお寄せください。

Powered by メールフォーム 『オレンジフォーム』