ブログチュートリアル

参考)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が表示されないようにデフォルトでできないものか。。

インストール

参考)http://docs.fuelphp.com/

まずは oil コマンドをインストールします。

$ curl get.fuelphp.com/oil | sh

何をしてくれたかというと、以下のコマンドを叩いてみれば一目瞭然。

$ 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系が同居できたので、次回から本格的に記事を書いていこうと思います。