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

齊藤 新三
ソシム
商品プロモーションを含む場合があります

PHPマイクロフレームワーク「Slim」を使ったWebアプリケーション開発のすべてを一冊で学べる! Slim(スリム)はPHPのフレームワークのひとつです。 PHPのフレームワークではLaravel(ララベル)が人気ですが、機能豊富で重厚なLaravelと比べると、Slimが提供する機能はとてもシンプルです。 本書では、Webアプリケーション開発に興味を持つ人たちを対象に、「そもそもフレームワークとは何なのか」という基本的な話題から、「本運用環境」で稼働させるまでを、各種開発ツールを活用しながら、ステップ・バイ・ステップでていねいに解説していきます。 本書は、導入編、基本編、実践準備編、実践編という4つの編から構成されています。 導入編では、XAMPPとComposerを導入して学習環境を構築し、Slimアプリケーションの動作原理を学びます。 基本編では、一つのサンプルアプリの作成を通して、MVCアーキテクチャに従ったSlimアプリケーションの開発手順を学びます。ルーティング、テンプレートエンジンTwig、外部コンテナPHP-DI、コントローラクラス、ミドルウェアなど、Slimアプリケーションの開発に欠かせない基本事項を学んでゆきます。 実践準備編では、いったんいったんSlimの解説から離れ、本運用を意識した開発環境の構築を学びます。GitHubを利用したソースコードの管理、VagrantとVirtualBoxを使った仮想環境の構築、本書で本運用環境とするHerokuなどについて学んでゆきます。 実践編では、実戦準備編で用意した開発環境上に実際にSlimを利用したMVCアプリケーションを作成し、Heroku上で稼働させる手順を学びます。データベース処理、MVCアーキテクチャの導入、エラーや例外を適切に処理するためのエラーハンドラの活用方法、本運用環境であるHerokuへのデプロイ手順を学んでゆきます。 読者特典として、PHPUnitを使った単体テストの導入方法を扱ったボーナスコンテンツをPDFで提供します。 PHPマイクロフレームワーク「Slim」を使ったWebアプリケーション開発のすべてを一冊で学べる!本番環境を想定した環境構築やデプロイ、運用まで学習できる!     はじめに     本書の使い方 導入編  第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 エラー表示切り替えコードの変更     おわりに     索引     著者/監修者プロフィール

みんなのレビュー
まだレビューはありません
search