サポートサイト
著者によるサポートページとTwitter公式アカウントが公開されています。
- サポートサイト(GitHub): https://github.com/kenjis/fuelphp1st-2nd
- 公式アカウント(Twitter): @fuelphp1st
関連書籍
本書は『はじめてのフレームワークとしてのFuelPHP第2版(1) 環境構築編』『同(2) 入門編』『同(3) 実践編』の全3巻のうちの第3巻になります。他の巻も販売中です。
※本書計3巻を元にラトルズ社から紙の書籍が発売になりました。こちらもぜひお買い求めください。
ラトルズ
売り上げランキング: 23,539
内容紹介
本書は、FuelPHPの入門シリーズ『はじめてのフレームワークとしてのFuelPHP 第2版』の第3巻です。この巻では、実際にFuelPHPを使ってWebアプリケーションを作成します。改訂にあたっては、初版で古くなった部分を更新し、また、様々な改良を加え、テストも追加しました。
FuelPHPは、先行する多くのフレームワークを参考に、PHP 5.3の機能をフルに活用しゼロから開発されたフレームワークです。最初からMongoDBやRedisをサポートし、RESTfulなコントローラをすぐに作成できる最先端のフルスタックなフレームワークです。しかも、シンプルで覚えやすく、かつ、軽量高速です。
本書は、FuelPHPの入門書であると同時にPHPフレームワークの入門書です。本書のテーマは、フレームワークを使ったことのないPHPユーザの方が、FuelPHPを使いこなせるようになることです。この第3巻では、実際にWebアプリケーションを作成しながら、フレームワークやユニットテストへの理解を深めます。
本書の初版が出版されたのが、2012年7月。FuelPHP 1.0がリリースされて1年後のことでした。初版の対応バージョンは1.2。それから、2年の歳月が流れ、FuelPHPのバージョンも1.7.2に上がっています。その間に、FuelPHPの知名度は飛躍的に向上し、今では日本での4大PHPフレームワークの1つとして定着した感があります。実際の現場でもFuelPHPの利用は増加しており、FuelPHPと記載されている求人情報を目にすることも多くなりました。
本書で学習されたみなさんが、FuelPHPを気に入り、使いこなせるようになり、Webアプリケーションを楽しく作成できるようになることを願っています。
(「はじめに」より抜粋)
書誌情報
- 著者: 鈴木憲治
- 発行日: 2014-04-23
- 最終更新日: 2014-10-25
- バージョン: 1.1.0
- ページ数: 171ページ(A4PDF版換算)
- 対応フォーマット: EPUB, PDF
- 出版社: 達人出版会
対象読者
フレームワークを使っていないPHPユーザ、またはPHPで使えるフレームワークを検討している人
著者について
鈴木憲治
FuelPHPまとめWiki管理人。プログラマ。PHP5技術者認定上級試験認定者。1999年より日常的にGNU/Linuxを使っている(現在、Ubuntuユーザ)。Namazu Project、zaurus-ja、Usagi Projectなどさまざまなオープンソースプロジェクトに関わる。FuelPHPをPHPの3大フレームワークの1つにしようと画策している。著書に『PHP逆引きレシピ 第2版』『CodeIgniter徹底入門』(翔泳社)、『徹底攻略PHP5技術者認定[上級]試験問題集』(インプレスジャパン)、『Webサイト制作者のためのPHP入門講座』(技術評論社)などがある。
目次
はじめに
- 本書の対象読者
- 本書の構成
- 本書の動作確認環境
- Windows
- Mac OS X
- GNU/Linux
- Vagrant
- 本書の表記
- 書式
- 本書のサポートサイト
- 本書の査読者
- 謝辞
第1章 コンタクトフォームの作成
- 1.1 コンタクトフォームの設計
- 1.1.1 機能の洗い出し
- 1.1.2 ページ遷移とメソッド名の検討
- 1.1.3 ビューのデザイン
- 1.1.4 フォームの設計
- 1.1.5 フォルダ構成
- 1.2 コンタクトフォームのコーディング
- 1.2.1 入力ページのビューの作成
- 1.2.2 コントローラファイルの作成
- 1.2.3 入力ページのアクションメソッドの作成
- 制御構造の別の構文
- 1.2.4 検証ルールの定義
- 1.2.5 確認ページのアクションメソッドの作成
- 1.2.6 確認ページのビューの作成
- CSRF(クロスサイトリクエストフォージェリ)
- 1.2.7 検証エラーメッセージの日本語化
- 1.2.8 例外の作成
- 1.2.9 完了ページのアクションメソッドの作成
- 1.2.10 完了ページのビューの作成
- Gmail経由でメールを送信する方法
第2章 コンタクトフォームの改良
- 2.1 入力データの検証の強化
- 2.1.1 文字エンコーディングの検証
- 2.1.2 入力フィルタのテスト
- 2.1.3 入力フィルタの追加
- 2.1.4 入力フィルタの設定
- 2.1.5 独自の検証ルールの作成
- 2.1.6 独自の検証ルールの追加
- 2.2 セキュリティ対策の強化
- 2.2.1 クリックジャック対策
- クリックジャックとは?
- 2.3 ファンクショナルテストの追加
- 2.3.1 ファンクショナルテストとは?
- 2.3.2 Goutteのインストール
- 2.3.3 FunctionalTestCaseクラスの作成
- 2.3.4 入力ページのテスト
- 2.3.5 フォームのテスト
- 2.3.6 確認ページのテスト
- 2.3.7 完了ページのテスト
- ファンクショナルテストは壊れやすい
第3章 コンタクトフォームのリファクタリング
- 3.1 Fieldsetクラスの使用
- 3.1.1 フォームの定義
- 3.1.2 action_index()メソッドの変更
- 3.1.3 form/indexビューの変更
- 3.1.4 action_confirm()メソッドの変更
- 3.1.5 action_send()メソッドの変更
- 3.2 モデルの追加
- 3.2.1 Mailモデルの作成
- 3.2.2 Mailモデルのテスト
- 3.2.3 Formコントローラの変更
- 3.3 設定ファイルの使用
- 3.3.1 設定ファイルの作成
- 3.3.2 Mailモデルの変更
第4章 データベースの使用
- 4.1 使用するデータベースとFuelPHPのデータベース機能
- 4.2 データベースおよびユーザの作成
- 4.3 データベース接続設定
- PDOドライバ(MySQL)での文字エンコーディングの指定方法
- 4.4 テーブルの設計
- 4.5 テーブルの作成
- 4.5.1 マイグレーションによるテーブルの作成
- 4.5.2 手動でのテーブルの作成
- 4.6 モデルの作成
- 4.7 モデルのテスト
- 4.7.1 テストデータの準備
- 4.7.2 DbTestCaseクラスの作成
- 4.7.3 Model_Formクラスのテスト
- 4.7.4 データ挿入のテスト
- 4.8 コントローラの変更
第5章 管理ページの作成
- 5.1 管理ページの作成方針
- 5.2 パッケージを使用するための設定
- 5.3 Simpleauthの設定
- 5.3.1 グループの設定
- 5.3.2 ソルトの設定
- 5.3.3 データベーステーブルの作成
- 5.4 管理者ユーザの登録
- 5.5 管理ページの生成
- 5.5.1 formテーブルの削除
- 5.5.2 データベーステーブルからUserモデルを自動生成
- 5.5.3 Userモデル
- 5.5.4 管理ページの自動生成
- 5.5.5 Formモデル
- 5.5.6 Formモデルのテストの変更
- 5.5.7 Formコントローラの変更
- 5.5.8 ファンクショナルテストの追加
- 5.6 管理ページの閲覧
- 5.7 生成されたコードの変更
- 5.7.1 ログインページ
- 5.7.2 一覧ページ
- 5.7.3 表示ページ
- 5.7.4 使用しないコントローラのアクション
第6章 コントローラのユニットテスト
- 6.1 AspectMockとは?
- 6.2 AspectMockのインストール
- 6.2.1 Composerによるインストール
- 6.2.2 FuelPHPへの統合と設定
- 6.3 ユニットテストの作成
- 6.3.1 AmTestCaseクラスの作成
- 6.3.2 controller_form_Testクラスの作成
- 6.4 action_index()メソッドのテスト
- 6.4.1 Responseオブジェクトのテスト
- 6.4.2 モックによるCoreクラスの置き換え
- 6.5 action_confirm()メソッドのテスト
- 6.6 action_send()メソッドのテスト
- 6.6.1 例外のテスト
- 6.6.2 モックによるモデルの置き換え
- 6.6.3 モックで例外を発生させる
- 6.7 その他のケース
- AspectMock使用時のクラスロードのエラー
第7章 コードカバレッジ解析
- 7.1 コードカバレッジ解析とは?
- 7.2 コードカバレッジレポートの設定
- 7.3 コードカバレッジレポートの作成
- 7.3.1 全体のレポート
- 7.3.2 controllerフォルダのレポート
- 7.3.3 modelフォルダのレポート
- 7.3.4 テストされていないファイル
付録1 FuelPHPの情報の集め方
- 公式ドキュメントを読む
- 公式ドキュメント
- 公式ドキュメントの日本語訳
- 質問する
- fuelphp.jp Googleグループ
- 本家フォーラム
- Stack Overflow
- 公式IRCチャネル
- バグを調査する
- イベントやコミュニティへ参加する
- その他
- 本家Twitterアカウント
- FuelPHPまとめWiki
付録2 本番環境へのデプロイ時の注意点
- public/index.php
- エラー表示
- 実行時間とメモリ使用量の表示
- 暗号鍵などの秘密情報
- 秘密情報の環境変数からの取得
- app/config/crypt.php
- 秘密情報が含まれる設定ファイル
- Composer