FuelPHPを試してみる

PHP始める宣言をしてみたので手始めにFuelPHPを試してみる

FuelPHPとは

f:id:syguer:20131119235625p:plain

日本版公式

特徴として以下の様なものが挙げられている

  • An (H)MVC framework
    MVCを通り越してHMVCのフレームワークらしい
    HMVCってなにさ?と思ってぐぐってみたところ、Hierarchical Model View Controllerの略らしい
    日本語訳的には階層化されたMVCとか。日本語ドキュメント少ないから新しい概念なのかな
    ここ見た感じだと、現在の一般的なMVCフレームワークではリクエストに対してControllerを呼び出して…ってところの処理をフレームワークのルーターが担当するけど、それを自分でできる感じらしい
    「それだけじゃないぜ!俺達はそれに加えてviewmodelも提供するぜ!」とも言ってる
    この辺はよく知らんので面白そう

  • Modular and extendable to a fault
    coreパッケージのクラスのほとんどが容易に拡張可能とのこと

  • Oil: the power of the command line
    Railsでお馴染みのScaffoldが使えるとのこと
    ORMもついてるようで、もはやこの辺は用意してて当然のスタンスですね

インストール

以下のコマンドでコマンドラインツールのoilがインストールされる

$ curl get.fuelphp.com/oil | sh

createでアプリ作成

$ oil create hoge

ここから色々パッケージ落としてきて結構時間かかる

作成の最後で警告が出た

Error - date_default_timezone_get(): It is not safe to rely on the system's timezone settings. 
You are *required* to use the date.timezone setting or the date_default_timezone_set()
 function. In case you used any of those methods and you are still getting this warning, you
 most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but
 please set date.timezone to select your timezone. in COREPATH/classes/fuel.php on line 161

タイムゾーンUTCで指定してるから、自分のタイムゾーンにしてねって感じかな
ちなみにこのエラーは誰が出してるんだろう?とりあえずErrorといいつつインストールはコケないのでスルーする

動かしてみる

とりあえずMacにデフォルトでApacheが入っているようなので、設定を見てみると/private/etc/apache2/httpd.confが設定ファイルになっているようなので中を見てみる

DocumentRoot "/Library/WebServer/Documents"

となっているので、ここの下に置けばとりあえずアクセウできるはず
ほんとはここをアプリ置いてあるとことかにすればいいと思うけど、とりあえずこのままで

ブラウザでアクセスしてみると、

f:id:syguer:20131120005533p:plain

こいつはさっきインストールの時にでてたやつじゃねーか。。まんどくせ

さっきoilコマンドで作ったディレクトリは以下のようになっていると思う

.
├── CHANGELOG.md
├── CONTRIBUTING.md
├── LICENSE.md
├── README.md
├── TESTING.md
├── composer.json
├── composer.lock
├── composer.phar
├── docs
│   ├── assets
│   ├── classes
│   ├── contribute.html
│   ├── credits.html
│   ├── favicon.ico
│   ├── favicon.png
│   ├── general
│   ├── index.html
│   ├── installation
│   ├── license.html
│   ├── packages
│   ├── requirements.html
│   ├── templates
│   ├── toc.html
│   └── vendor
├── fuel
│   ├── LICENSE
│   ├── app
│   ├── core
│   ├── packages
│   └── vendor
├── oil
└── public
    ├── assets
    ├── index.php
    └── web.config

ここのfuelの下をたどっていって、fuel/core/config/config.phpを開き、118行目を以下のように書き換える

'default_timezone'   => null, #before
'default_timezone'   => 'Asia/Tokyo', #after

これで改めてアクセスしてみる

f:id:syguer:20131120010253p:plain

うまくいったようだ

今日のまとめ

意外とデモページにアクセスするのも苦労してしまった
コンフィグいじる場所探してる過程で、Ruby慣れしてるせいで触ったとこの行末セミコロン忘れててだいぶハマったりね
次は付属ORMでもいじってみる