Hatena::ブログ(Diary)

A Day in Serenity @ kenjis

2012-06-28

FuelPHP 入門書の決定版『はじめてのフレームワークとしての FuelPHP』が発売されます

大変お待たせしました。FuelPHP の入門書

 『はじめてのフレームワークとしての FuelPHP』

がついに7月2日に発売されることになりました。待った甲斐があったと思われるような完成度の高い書籍に仕上がりました。

この本は、以下のようなことが当てはまる人に自信を持ってお薦めします

  • FuelPHP に興味があるが、Web の情報は断片的で、しかも正確なものかどうかもよくわからなくて困る
  • FuelPHP の全体像や考え方を手っ取り早く知りたい

また、以下のようなことが当てはまる人にも是非お読みいただきたいです。

  • PHP は使ってるけど、フレームワークって何?Smarty とどう違うの?まだ使ったことがないので知りたい
  • PHP 使ってるけど、どうにもレガシーでこの会社大丈夫か?と疑問を感じる
  • 使ってるフレームワークがオレオレフレームワークでしかも実装がイケてない。あと、他人がメンテできず困る
  • 他のフレームワークが難しくて、あるいは覚えることが多すぎて、挫折した。ぶちゃけ覚えるの無理
  • 使っているフレームワークの規約がどうも合わない。もっと自由なフレームワークってないの?
  • 使っているフレームワークが自分には合わない。何でここで配列が返ってくるの?
  • 使っているフレームワークが、どうも大げさ過ぎる。もっとライトなものを使ってみたい
  • ユニットテストって何?
  • ユニットテストを書いてみたいが、Web アプリでの書き方がよくわからない
  • ユニットテストを書かないといけないと思っているが、Web アプリでの書き方が正直よくわからない
  • エディタでコード書いてるけど、最新の開発環境だと開発効率がアップするのかな?
  • 使っているフレームワークの開発が停滞しているので移行先のフレームワークを探している
  • 使っているフレームワークのライセンスが変更されて使い辛くなってしまったので移行先のフレームワークを探している
  • 最新のフレームワークをマスターして開発効率をアップしたい

FuelPHP について、すでによく知っていると言う人は、『はじめてのフレームワークとしての FuelPHP』とは? へお進みください。


FuelPHP とは?

今、日本でもっとも注目されている最新の PHP フレームワークです。PHP 5.3 以上専用のフレームワークです。一言で言うと「今風のガテン系でお洒落なフレームワーク」です。

http://www.slideshare.net/sotaroomura/fuelphp/96

どれくらい注目されているかというと、「PHP カンファレンス関西 2012」での伝説の FuelPHP 紹介プレゼンの発表資料 は、すでに 6,909 ビューを超えています。

また、7月8日に 東京で初めての勉強会 が開催されますが、当初 20人定員で募集していたものが、すぐに埋まってしまい、定員が 20人→40人→50人と増員されましたが、それも 5日で満席になりました。


FuelPHP は、先行するフレームワーク CodeIgniter、Symfony、Rails などを参考に、それらのいいとこどりをしたフレームワークです。

https://twitter.com/kenji_s/status/163013660413935618

https://twitter.com/kenji_s/status/164611838909227010

http://twitter.com/ito_yoitomake/status/213940263092105216

FuelPHP は最新のフルスタックフレームワークですが、高速軽量であり、また「規約より設定」を重視しており、強制的な規約は最小限に抑えられており覚えないといけないことが少なく、また、見やすい公式ドキュメントが付属しており、フレームワーク初心者にも習得が容易です。


CodeIgniter ユーザの方には、「CodeIgniter のいいところはそのままに、CodeIgniter に足りていなかった機能を強化したもの」あるいは「CodeIgniter の進化版」と言うとわかりやすいかも知れません。かなり似ているので、CodeIgniter ユーザには習得が非常に容易です。

触ってみた印象としては、CodeIgniterにRuby on RailsやCakePHP、Symfonyの強力なコマンドラインツールを持たせたような感じです。コマンドライン一行でインストールできる手軽さも非常に魅力的と感じました。認証システムなど、CodeIgniterのときはライブラリで実現したいくつかの機能が標準で入っていて、すぐに使えるフレームワークになっています」(500 Internal Server Error より)

https://twitter.com/kenji_s/status/215914709789061120


また、FuelPHP は最初からコミュニティで開発、コミュニティ指向であり、すでに 100人以上の人が開発に参加しています。日本からのコントリビュータ (FuelPHP にソースコードを提供したことのある人) も増えてきており、私が知る限り現在 5人います。


さらに、2011年にリリースされた新しいフレームワークですが、すでに日本語の書籍も、『FuelPHP Advent Calendar 2011』(技術評論社)、『FuelPHP 入門』(ソーテック社) と 2冊出版されており、この本が 3冊目となります。



『はじめてのフレームワークとしての FuelPHP』とは?

この本は、FuelPHP の入門書です。フレームワーク初心者 (PHP 初心者ではありません) が、FuelPHP の考え方や基本的な使い方をマスターし、FuelPHP を実際に仕事で使ってみようと思えるようになるために作成されたものです。また、日本の FuelPHP ユーザのテキストになるような本を目指しました。

https://twitter.com/maputicore/status/215453030840139776

はい、このような用途に、この本は最適です。ただし、PHP 初心者は本書の対象外です。

ちなみに、読者の 1人が考案されたこの本のキャッチコピーは「作りながら、変化させながら、ステップを踏んで、最新のフレームワーク FuelPHP の真髄に迫る!」でした。


フレームワーク未経験者/初心者も読者対象

フレームワーク未経験の人がつまづかないように、フレームワークとは何かから丁寧に解説しています。ただし、PHP の知識は前提条件です。


FuelPHP 1.2 に完全対応

この本は、はじめから FuelPHP 1.2 をターゲットに作成されました。むしろ、1.1 なにそれ?細かいバグ多くない?という感じです。


最新の開発環境

Git、Eclipse/PDT、MakeGood という最新の開発環境を前提としています。Windows、Mac OS X、GNU/Linux での開発環境の構築方法を丁寧に解説していますので、これらをよく知らない方でも全く問題ありません。また、最新の開発環境がコーディングを強力にサポートしますので、FuelPHP でのコーディングが非常に楽になります。

ただし、Git の入門書ではなく、Git についてはソースのダウンロードにしか使っておらず、解説もほとんどありません。


最初からセキュア、最初からきちんとテスト

入門書にありがちな、セキュリティ対策の省略や説明不足という手抜きはありません。実用的なレベルのセキュアなコーディングになっています。ただし、セキュリティの専門書ではありませんので、網羅的に解説しているわけではありませんが。

テストについては、TDD ではありませんが、FuelPHP でのユニットテストとファンクショナルテストのやり方について解説しています。

  • テストを書きたいが、どうもやり方がよくわからない
  • ユニットテストの解説を読んだことがあるけど、ボーリングのスコアとかあまりに Web アプリと違う題材で実際のテストのやり方がイメージできない

このようなことを思ったことがある人はいませんか?この本では、実際の Web アプリでのテストのやり方を解説しています。


総勢 50名以上による原稿レビュー

また、本の品質についても、非常に高いものに仕上がっています。

日本でいち早く FuelPHP を使っている 10名以上のメンバーを含む、総勢 50名以上のレビューチームにより 2か月に渡ってレビューされています。これほどの規模でしっかりとレビューされている書籍は非常にまれだと思います。

Windows 7/XP、Mac OS X 10.6 Snow Leopard/10.7 Lion、Ubuntu、CentOS といった様々な環境のレビュアによりレビューされています。


本家へのフィードバック

本の作成過程で発見された FuelPHP の問題点はすべて本家にフィードバックしています。FuelPHP 1.2 に修正が間に合わなかったり、簡単に修正するのが難しい問題点については本に掲載しています。


目次

目次は以下のようになっています。337ページのボリュームです。

第1章 FuelPHPとは?

  • 1.1 フレームワークとは?
  • 1.2 FuelPHPとは?
  • 1.3 FuelPHPの特徴
  • 1.4 FuelPHPのライセンス
  • 1.5 FuelPHPの開発体制
  • 1.6 FuelPHPのコミュニティ

第2章 開発環境の構築

  • 2.1 FuelPHPでの開発に必要なソフトウェア
  • 2.2 Windowsでの開発環境の構築
  • 2.3 Mac OS Xでの開発環境の構築
  • 2.4 GNU/Linuxでの開発環境の構築
  • 2.5 FuelPHPの設定
  • 2.6 Eclipse/PDTの設定

第3章 はじめてのFuelPHP

  • 3.1 はじめてのFuelPHPプログラミング
  • 3.2 “Hello World!”で学ぶFuelPHPの基本
  • 3.3 FuelPHPのURL
  • 3.4 FuelPHPのフォルダ構成

第4章 FuelPHPのMVC

  • 4.1 MVCとは?
  • 4.2 コントローラ
  • 4.3 ビュー
  • 4.4 モデル
  • 4.5 ビューモデル
  • 4.6 モジュール

第5章 FuelPHPの機能概要

  • 5.1 FuelPHPの処理フロー
  • 5.2 環境別の設定ファイル
  • 5.3 ルーティング
  • 5.4 セキュリティ
  • 5.5 Coreクラス
  • 5.6 パッケージ
  • 5.7 名前空間とオートロード
  • 5.8 HTTPエラー処理
  • 5.9 データベース機能
  • 5.10 デバッグとログ出力
  • 5.11 コマンドラインからの実行(タスク)
  • 5.12 コマンドラインからのコード生成

第6章 FuelPHPの拡張

  • 6.1 ライブラリの作成
  • 6.2 サードパーティ製ライブラリの使用
  • 6.3 Coreクラスの拡張
  • 6.4 イベントによる拡張

第7章 FuelPHPでのユニットテスト

  • 7.1 ユニットテストとは?
  • 7.2 はじめてのPHPUnit
  • 7.3 FuelPHPでのユニットテスト

第8章 コンタクトフォームの作成

  • 8.1 コンタクトフォームの設計
  • 8.2 コンタクトフォームのコーディング

第9章 コンタクトフォームの改良

  • 9.1 入力データの検証の強化
  • 9.2 セキュリティ対策の強化
  • 9.3 ファンクショナルテストの追加
  • 9.4 リファクタリング

第10章 コンタクトフォームの機能追加

  • 10.1 データベースの使用
  • 10.2 管理ページの追加
  • 10.3 コードカバレッジ解析

付録A リモートデバッグ



さらに、この本は、現在の書籍に対する以下のような不満を解消することも目標にしています。

なかなか電子化されない問題

毎年のように電子書籍元年が続いていますが、未だ電子化される IT 系の技術書はわずかです。

https://twitter.com/kenzo_nakata/status/212768189585694721


自炊問題

そして、電子書籍が出ないため自炊に走るわけですが、さらに以下のような問題が生じてしまいます。

https://twitter.com/NEKOGET/status/210878466743205889

https://twitter.com/suzuki/status/210877867423305728

本を送るために Amazon でダンボールを注文するついでに、うっかり別の本も一緒に注文してしまい、さらに本が増えてしまったり。(ただの想像です。事実とは異なります。)


発売日当日入手が困難という問題

また、ご存じの方も多いかもしれませんが、ネット書店では予約はかなり前からできるところもありますが、発売日当日に書籍を入手することは困難です。発売日当日には届きません。

Amazon では「発売日お届け」というサービスが一部の商品でありますが、書籍はまだ対象外のようです。しかも、これは有料サービスです。

https://twitter.com/vbwmle/status/111186744308801536

そして、結局、どこで買ったらいいのか?という悩みを生み出します。

https://twitter.com/NEKOGET/status/210272690681032704

しかも、これは都会に住んでいればの話です。田舎では大きな書店がなく発売日当日の入手は困難なことも多いでしょう。

これらの諸問題を根本的に解決するために、この本は、最初から電子書籍 (印刷可能な PDF および EPUB) で提供されます。

もともと電子データで作成された書籍を紙に印刷し、それを裁断してスキャンして電子化するという自炊などという無駄なことをする必要はもうありません。日本全国どこからでも発売日当日に購入できます。出版社は今話題の「達人出版会」です。

http://twitter.com/marvelph/status/215623771279732736


サンプルコードが再利用できない問題

また、既存の書籍ではサンプルコードの利用条件が厳しく、再配布は言うにおよばず、サンプルコードを元に自分のアプリを作成することも無理なような、事実上再利用が一切不可能なものも見受けられます。

http://www.sotechsha.co.jp/sp/941/

あまりに厳しいライセンスは時代に合っていないと言わざるを得ません。この本では、サンプルコードは FuelPHP と同じく MIT ライセンスで GitHub より配布します。


わからないところがあっても気軽に質問できない問題

書籍は一般に著者への質問を受け付けていますが、書籍を見ると FAX や返信用封筒に切手を貼って送れとか書いてあったりします。あるいは、出版社のサイトから質問を送信できたりもしますが、やはり心理的に敷居が少し高いです。気軽に質問というのはなかなかできません。

また、質問するにも間に出版社が入るため、どうしてもダイレクトに質問する場合と比べると不自由さが残ります。

この本では、読者限定の非公開メーリングリストを 1年間提供します。1人では読む自信がない、マスターできるか心配だという方も大勢の読者と一緒なら挫折せずに読み終えることが容易になります。また、つまづいたら気軽に質問することもできます。


まとめ

omoonomoon 2012/06/28 11:20 おめでとうございます。

Kenji_sKenji_s 2012/06/28 21:40 ありがとうございます!

regepanregepan 2012/06/29 23:28 すばらしいです。紙の技術書は買うのに敷居が高いと感じる様になりました。

投稿したコメントは管理者が承認するまで公開されません。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

リンク元