FuelPHP
入門ハンズオン vol.2
A simple, flexible, community driven PHP 5.3 framework.
2013/07/20 @ 名古屋
- このイベントは、FuelPHP 入門のためのハンズオン形式の勉強会です。
- PHP に関する基本的な知識がある方を対象に、FuelPHP のインストールから実際のプロジェクトで使い始めることができるようになるまでを目標とします。
タイムテーブル
時刻
内容
10:00-
はじめに
10:30-
環境構築
12:20-
昼休み
13:20-
環境構築
14:10-
FuelPHP 概要
14:40-
コントローラ/ビュー
15:20-
ルーティング
15:40-
休憩
16:00-
データベース設定
16:20-
簡易 BBS 作成
17:20-
REST Controller
17:30-17:45
ふりかえり
ハンズオンの流れ
- すべての作業はペアで行います
- 事前に誰かが最初にプロジェクタに出力し解説しながら作業します
- その後、手許でペアで作業します
- 質問があれば、随時してください
ペアで行うとは
- 2人で1台の PC で作業します
- 1人(ドライバー)がキーボードを操作
- もう1人(ナビゲーター)はナビゲートします
- すべての時点において、キーボードを操作する人は必ず1人
- ドライバーとナビゲーターはいつでも交代できるように作業を進めます
ペア決め
- スキルの高い人と低い人がペアになるようにペアを決めます
- スキルの低い人同士のペアはできるだけ避けます
- 考慮するスキルは
環境構築(1)
- XAMPP/MAMPのインストール
- NetBeans/NetBeans FuelPHP plugin のインストール
- Git/GitHub クライアントのインストール
- ここまでは勉強会の前に各自で完了することが望ましい
XAMPP/MAMP
Windows の方は XAMPP、Mac OS X の方は MAMP をインストールしてください※MAMP は「環境設定」の「ポート」タブで「Apache と MySQL の標準ポートに設定」を押下、
「OK」してから「サーバを起動」してください
NetBeans/NetBeans FuelPHP plugin
両方をインストールしてください。JRE 6 or 7 が別途必要です
Git/GitHub クライアント
どれか 1つをインストールしてくださいGitHub に慣れていない方は GitHub for X をインストールしてください
環境構築(2)
- 1人が GitHub に空のリポジトリ(名前は fuelhandson とします)を作成し、もう 1人と共有する
- GitHub の fuelhandson リポジトリを手許に clone
- 1人が何かテキストファイルを作成し、commit & push してみる
- もう 1人が fetch & merge(= pull)して、そのファイルに何か追加して commit & push してみる
環境構築(3)
- FuelPHP 1.6.1 の Zip を取得し展開し、中身を手許の fuelhandson フォルダにコピー(必ずトップフォルダに oil があるように配置する)
- Apache からアクセスできるように public フォルダを Apache のドキュメントルートにシンボリックリンクする
Apache のドキュメントルートにシンボリックリンク
Windows
C:\Windows\system32>cd \xampp\htdocs
C:\xampp\htdocs>mklink /d fuelhandson "c:\path\to\fuelhandson\public"
管理者としてコマンドプロンプトを実行する必要があります
Mac OS X
$ cd /Applications/MAMP/htdocs
$ ln -s /path/to/fuelhandson/public fuelhandson
環境構築(4)
- ブラウザから http://localhost/fuelhandson/ にアクセスし、FuelPHP の Welcome ページが表示されたら OK
- 手許のリポジトリに commit する前に .gitignore を作成
- 手許のリポジトリに commit し、GitHub へ push
- もう1人も fetch & merge (= pull)して、シンボリックリンクをはり、同じく Welcome ページが表示されることを確認
.gitignore
*~
*.bak
Thumbs.db
desktop.ini
.DS_Store
.buildpath
.project
.settings
*.tmproj
build
.idea
/fuel/app/logs/*/*/*
/fuel/app/cache/*/*
/fuel/app/config/crypt.php
nbproject/
FuelPHP に含まれる .gitignore ではソースコードをうまく共有できませんので、必ず、上記に変更してください
環境構築(5)
- NetBeans へ fuelhandson フォルダをインポート
- 自動補完ファイルの生成
- FuelPHP の config.php の設定
コントローラ/ビューの作成
- コントローラの作成
- ビューの作成
- ビューに変数を渡す
- メソッドの引数をビューに渡す
ルーティングの設定
- メソッド名なしで引数を渡せるようにルーティング設定
データベース設定
- MySQL でユーザと専用データベースを作成
- config/development/db.php に接続設定を記載
データベースユーザとデータベースの作成
- phpMyAdmin でユーザを作成
- ユーザ名: fuelhandson
- ホスト: ローカル
- パスワード: パスワード無し
- 「同名のデータベースを作成してすべての特権を与える」にチェック
- データベースの「照合順序」を「utf8_general_ci」に変更
config/development/db.php
'dsn' => 'mysql:host=127.0.0.1;port=3306;dbname=fuelhandson;charset=utf8',
'username' => 'fuelhandson',
'password' => '',
MAMP では host=localhost では動作しないことがありますので、
上記のように 127.0.0.1 を指定してください
簡易 BBS の作成
- Scaffold でコードを生成
- Migrate でテーブルを作成
簡易 BBS Scaffold
$ php oil generate scaffold bbs post_date:date message:varchar[100] --singular
- --singular オプションは FuelPHP 1.6 以上が必要
- ファイルが生成される
簡易 BBS Migrate
$ php oil refine migrate
簡易 BBS
- 簡易 BBS が作成されたので、ブラウザからアクセスしてみる
- ソースコードの解説
REST Controller の作成
- REST Controller を作成
- 簡易 BBS のデータを出力してみる
- 出力フォーマットを固定する