恋に落ちるブログを作ってみる
公開日:
:
FuelPHP
FuelPHPをインストールしたら、お約束の簡易ブログを書いてみる。
最初にデータベースの設定。今回は一般的なヤツで。普通にMySQLで。
CREATE TABLE `posts` ( `id` int(11) NOT NULL AUTO_INCREMENT, `title` varchar(255) NOT NULL, `summary` varchar(255) NOT NULL, `body` text, `created_at` int(11) NOT NULL, `updated_at` int(11) NOT NULL, PRIMARRY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
created_atとupdated_atは登録日と更新日だな。たぶんどこかで自動的に書き込まれるようにするんじゃないだろうかと妄想。単なるお約束なのかもしれないけど。
次はdb.phpを編集してDBを読めるようにする。db.phpというファイルはいろいろな場所にあるので注意。
/fuel/app/config/development/db.php
return array( 'default' => array( 'connection' => array( 'dsn' => 'mysql:host=mysql***.phy.lolipop.jp;dbname=LA017*******-***', 'username' => 'LA017*******', 'password' => '*************', ), ), );
Modelの作成
FuelPHPではSQLを使うのに4種類の方法があるようだ。一番シンプルな方法がDBクラスを使いSQL文をそのまま書いてしまう方法。
DB::query(‘SELECT * FROM users WHERE id = 5’);
色々なフレームワークでも同じだけど、これはお勧めできない。あまり考えられないがDBを変更する時に面倒な作業になることがひとつ。それとデータのエスケープを自分で行う手間もある。詳細はPHPセキュリティで勉強してね。
2番めはクエリビルダを使う方法。これを使うと上記の問題点がほぼ解決できる。つまりDBの違いをFuelPHP側で吸収してくれて、データのエスケープも自動処理って訳だ。
DB::select(‘title’,’content’)->from(‘articles’)->execute()->get(‘title’);
そしてCRUDというやつ。Create retrieve? update deleteの頭文字らしい。これはよく使うSQL文を、より簡単に書くことができたり、データの検証があったりすると…。ってことは上のクエリビルダだと検証できないの?と疑問がわくけど。このあたりを中心に開発ってのが王道なのかな?
$entry = Model_Article::find_all();
そしてOrmってやつ。ここまでくると理解が怪しくなってくるのだが、どうやらリレーション関係を扱うようになっている仕組みらしい。 has_manyみたいな。CakePHPあたりで悩んだ思い出が蘇る^^;
最後にちょっと特殊な viewModelってのをモデルついでに書いておく。
これはviewに複雑なロジックを書きたくない場合に使えるようだ。例えばDBで県名を数値IDで持たせている場合。そのままだと表示が数字になる。これを県名に変換したいという場合などに使えるらしい。
viewやcontrollerと絡んでくる部分なので、後ほどまとめてみることにして先に進む。
続くよー
Sponsored Link
関連記事
-
-
CodeIgniter は終了
今までメインに使っていたCodeIgniterの使用を中止することにしました。 とっても残念です。
-
-
Apple Motion5 ではじめてのムービー
とりあえず Motion 5起動画面のプリセットを標準状態(NTSC DV・29.97fps)で、ど
-
-
SlideShareでホームページにプレゼンを公開できる
SlideShare http://www.slideshare.net/ ホームページ上でプレゼ
-
-
Yet Another Related Posts Pluginが表示されない(スコアが1でもダメ)
Wordpressのプラグインで、関連する記事を自動で紹介する「Yet Another Relat
-
-
ブラシレスジンバル SimpleBGC 2.42b7設定(修正前)
KONOVAのスライダーについているオプションの手動ハンドル。久しぶりに使い出したらギコギコうるさい
ご質問は掲示板へお願いいたします。