#Fuel 特急講座
このチュートリアルは、簡単なメッセージングアプリを作りながら Fuel PHP フレームワークについて、あなたに手を動かして学んでもらうためのものです。
あなたの Linux に以下のものを入れておいてください。
- Fuel PHP フレームワーク(ここではv1.5.3を使っています)
- XAMPP (初心者向け)または LAMP パッケージなら何でもOK(有名なディストリビューションのチュートリアルが沢山あります)
- phpMyAdmin (インストール方法はOSに依存するのでここでは説明しないです。 XAMPP ユーザーなら、もうインストールされています)
- Model-View-Controller (MVC) パターンについての基本的な理解
- Git とバージョンコントロールシステムに関する必要最低限の理解
完成品は Fuel Crash Course GitHub repository に置いてある事を知っておいてください。リポジトリをクローンして、git submodule update --init
でサブリポジトリを初期化すれば使えるはず。
xampp の htdocs フォルダの中に、"fuel_intro"フォルダを作ってください。
次にコマンドラインを開いて、そのフォルダに移動、これを打ち込んでください: git clone https://github.com/fuel/fuel.git .
最後のピリオド(".")を忘れないように。さっき作ったフォルダにファイルがクローンされるはず。
ファイルのクローンが終わったら、以下の2コマンドを打ち込んで、登録されているサブモジュールを更新してください。
git submodule init
git submodule update
ブラウザで http://localhost/fuel_intro/public に移動すると、Fuel による“successful install” ページが出るはず。
上手く行かなかったらパーミッションを確認してね。
このチュートリアルでは Fuel に入っている orm package を使用します。/fuel/app/config/config.php
を開いて、配列“always_load”のコメントアウトを外します。そのときに、配列 “packages” と“orm” パッケージもコメントアウトを外しましょう。
このファイルには、 Fuel を使う上で必要になるであるものが書き込まれています。デフォルトのタイムゾーンとか。Fuel を動作させるにはデフォルトタイムゾーンの設定が必要です。 Fuel は PHP デフォルトのタイムゾーンを使うので、 PHP: サポートされるタイムゾーンのリスト からあなたに近いところを探しておいてください。
適当に、ここでは America/New_York を使います。
これができたら phpMyAdmin (http://localhost/phpmyadmin) に移動して、 “fuel_intro”という名前のデータベースを作ってください。まだテーブルは作らないでおいてください。後で Fuel にテーブルのセットアップをさせます。
データベース名を "fuel_intro" に、パスワードを mysql をインストールしたときに設定したデフォルトのパスワードにしておきます。こうしておけば、デフォルトの設定でちゃんと全部動くので。編集するのは、development 環境の Fuel の設定ですよ、お間違え無く。
Fuel には Oil と呼ばれる素敵なコマンドラインユーティリティがついています。この Oil がコントローラーとテーブルを自動で組み立ててくれます。
コマンドプロンプトを立ち上げて、 Fuel を入れたディレクトリに移動したら、これを走らせてください: php oil
。 oilの簡単な使い方説明が出ます。
これが出ていれば、 Oil は正常に動いています! これであなたも石油王を目指せますね。
Fuel における Scaffolding で、情報を操作するためのコントローラー、モデル (ORM を使用)そしてビューを素早く生成できます。 スキャッフォルドが終わった時点で以下のフィールドが出来ているようにします。
‘id’, ‘created_at’, そして ‘updated_at’ のカラムは自動で作られます。なので、 'name' と 'message' のフィールドだけ oil に渡せば良い訳です。コマンドプロンプトで以下のコマンドを打ち込むだけ。
php oil generate scaffold messages name:string message:text
name の型に指定された “string” の実体は varchar[255] です。
ドキュメントツリーを見ると、コントローラー、モデル、ビューが出来上がっていて、デフォルトの内容が書き込まれているのがわかります。
データベースを見れば、テーブルが作られているのが分かります。これが、データベースのマイグレートが必要な理由です。
マイグレーションとは、データベース用のバージョンコントロールシステムのようなものです。/fuel/app/migrations/001_create_messages.php
を開くと、マイグレーションを走らせたときに何が起きているのかがわかります。タイポが無いかどうか、マイグレーションを走らせる前にファイルをチェックするのが良いでしょう。
もうマイグレーションの走らせ方は分かりますよね。さあどうぞ:
php oil refine migrate
これでテーブルが出来上がり、メッセージを書き込むことができます! データベースのテーブルを見れば、先に出したスクリーンショットのようになっているのが見られるでしょう。
“http://localhost/fuel_intro/public/messages”にアクセスして、メッセージを追加しましょう。"not found"のページが出たら変ですのでなんとかしてください。
以下のエラーが出たら、でてきたコードを crypt.php という名前で /fuel/app/config
に保存します。
メッセージを見ると、テーブルを使うレイアウトの用意が整っていることがわかります。なので、あとは(HTMLの)コードセマンティックを作る時間を取りましょう。
/fuel/app/views/messages/index.php
を開いて、以下のテーブルを順不同リストに変えましょう:
これ以上訳の分からないこと無ければ、これでコードはよりセマンティックになりました。(もし傍点やリストの見た目が嫌いならば、CSS使って何とかしてください)
Fuel をインストールした直後の、インストール成功の旨が書かれたページを覚えていますか? そのページはビューから提供されています。ルーティングを通して、 Fuel は標準形でないURLのページへ表示をリダイレクトする事が出来ます。このルーティングの設定は /fuel/app/config/routes.php
に書かれています。
デフォルトでは二つのルートがあります: ランディングページと404のページです。
http://localhost/fuel_intro/public にアクセスされたときに、インストール成功のページではなく、メッセージビューにブラウザをリダイレクトするようにします。そのために、 root に対応する値をこう書き換えれば良いでしょう。