ブログチュートリアル
参考)http://d.hatena.ne.jp/Kenji_s/20111109/1320827056
・テーブルを作成します。
create database fuel_example;
・DBの設定変更します。
--- a/fuel/app/config/development/db.php +++ b/fuel/app/config/development/db.php @@ -6,9 +6,9 @@ return array( 'default' => array( 'connection' => array( - 'dsn' => 'mysql:host=localhost;dbname=fuel_dev', - 'username' => 'root', - 'password' => 'root', + 'dsn' => 'mysql:host=localhost;dbname=fuel_example', + 'username' => 'goe', + 'password' => 'goe', ), ), );
次に orm を利用できるように always_load に設定します。
--- a/fuel/app/config/config.php +++ b/fuel/app/config/config.php @@ -185,7 +185,7 @@ return array( * ); */ 'packages' => array( - //'orm', + 'orm', ), /**
次に scaffold で controller,view,migration を生成します。
$ oil g scaffold -f post title:string summary:varchar[250] body:text
Creating migration: /Applications/MAMP/htdocs/blog/fuel/app/migrations/001_create_posts.php Creating model: /Applications/MAMP/htdocs/blog/fuel/app/classes/model/post.php
Creating controller: /Applications/MAMP/htdocs/blog/fuel/app/classes/controller/post.php
Creating view: /Applications/MAMP/htdocs/blog/fuel/app/views/post/index.php
Creating view: /Applications/MAMP/htdocs/blog/fuel/app/views/post/view.php
Creating view: /Applications/MAMP/htdocs/blog/fuel/app/views/post/create.php
Creating view: /Applications/MAMP/htdocs/blog/fuel/app/views/post/edit.php
Creating view: /Applications/MAMP/htdocs/blog/fuel/app/views/post/_form.php
migration 内容をDBに反映します。
$ oil refine migrate
Migrated app:default to latest version: 1.
http://fuelphp.localhost/index.php/post
にアクセスして画面がでればOKです。
さて、ここまではKenji_sの記事を参考にしつつ動かしながらひと通り理解したので
次回からはオリジナリティを出していければいいなと。
Profilier を有効にしてみる
参考)http://docs.fuelphp.com/general/profiling.html
プロファイラーは有効にすることで、デバック情報やプロファイル情報を画面上に表示してくれます。
Fuelphpはさほど気にする必要がないかもしれませんが、プログラマーとしては日々プロファイルを意識して書くように
したいところです。
※cakePHPで開発してたときはよくにらめっこしたものです。。
ということで、本来であればFuelPHPの本筋ではないので後回しでもいいのですが、
profilerを眺めつつ開発したいので、早めに書きました。
・Application profiling
/fuel/app/config/config.php
'profiling' => true,
・Database profiling
/fuel/app/config/db.php
'profiling' => true,
これで画面を表示して、Profilerが表示されること、DBのQuery数にカウントが表示されていれば問題ありません。
とおもいきや。
Database profiling側の実装方法ですと、せっかくdevelopment,productionとdb.phpがわかれているのにもかかわらず
本番でも開発でもprofilingが表示されていまいます。
/fuel/app/config/db.php と /fuel/app/config/production/db.php /fuel/app/config/development/db.php のソースを眺めていて
おそらく処理中に merge されるのだろうと推測して、以下のように変更。
/fuel/app/config/db.php・・・※もとに戻す
'profiling' => false,
/fuel/app/config/development/db.php
return array( 'default' => array( 'connection' => array( 'dsn' => 'mysql:host=localhost;dbname=blog_example', 'username' => 'admin', 'password' => 'xxxxx', ), 'profiling' => true, ), );
/fuel/app/config/db.php
return array( 'default' => array( 'connection' => array( 'dsn' => 'mysql:host=localhost;dbname=blog_example', 'username' => 'admin', 'password' => 'xxxxx', ), 'profiling' => false, ), );
これで画面を見たところ、ちゃんと開発では profiling が有効になり、
本番では無効になってました。
追記)開発時に profiler を常に有効にするイメージで最初に設定したのですが、
どうもでしゃばりな profiler で困る。
Detailが表示されないようにデフォルトでできないものか。。
インストール
まずは oil コマンドをインストールします。
何をしてくれたかというと、以下のコマンドを叩いてみれば一目瞭然。
$ which oil
/usr/bin/oil
/usr/bin/ 以下に oil コマンドがインストールされました。
次に、oil コマンドを利用してFuelPHPをインストールします。
$ oil create blog
何をしてくれたかというと、コンソールみれば一目瞭然。
Github からソースを clone してくれます。
コマンドラインにいかが表示されれば完了です。
Made writable: /Applications/MAMP/htdocs/blog/fuel/app/cache
Made writable: /Applications/MAMP/htdocs/blog/fuel/app/logs
Made writable: /Applications/MAMP/htdocs/blog/fuel/app/tmp
Made writable: /Applications/MAMP/htdocs/blog/fuel/app/config
取得したソースをDocumentRootに配置し、ブラウザから画面が表示されることを確認します。
遊んでみようと思ったきっかけ
個人的に今最も旬なフレームワークはCodeIgniterだと思いますが、
やはりライセンス問題が気になって仕方がない。
そこでちょっと調べたら出てきたのがFuelphpというわけです。
一通りドキュメント見る限りではいい感じ。
そしてKenji_sのCodeIgniter、Kohana、Fuelphpのパフォーマンス比較の記事を見て、
CodeIgniter、Kohanaに並ぶフレームワークと判断して使って見ることにしました。
ようやくphp5.2系とphp5.3系が同居できたので、次回から本格的に記事を書いていこうと思います。