PHP始める宣言をしてみたので手始めにFuelPHPを試してみる
FuelPHPとは
特徴として以下の様なものが挙げられている
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"
となっているので、ここの下に置けばとりあえずアクセウできるはず
ほんとはここをアプリ置いてあるとことかにすればいいと思うけど、とりあえずこのままで
ブラウザでアクセスしてみると、
こいつはさっきインストールの時にでてたやつじゃねーか。。まんどくせ
さっき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
これで改めてアクセスしてみる
うまくいったようだ
今日のまとめ
意外とデモページにアクセスするのも苦労してしまった
コンフィグいじる場所探してる過程で、Ruby慣れしてるせいで触ったとこの行末セミコロン忘れててだいぶハマったりね
次は付属ORMでもいじってみる