恋に落ちるブログを作ってみる
公開日:
:
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
関連記事
-
-
グライドカムの Tracking Information(UPS)
13日の夜に注文したグライドカム(Glidcam HD1000)。翌14日の朝5時にはトラッキングコ
-
-
SimpleBGC Software User Manual を解読する
SimpleBGC Software User Manualなるものがある。もちろん英語版とかフラン
-
-
Konovaのスライダーとハンドルを買ってみた
実は知らなかった韓国のKonovaというメーカー。照明やリグなんかを出しているらしい。
-
-
センサー配線用のプリント基板用コネクタハウジング4極【ZHR-4】
なかなか円高にならないし、ebayあたりも年末セールは来ないしで購入に踏み切れない Alexmos
-
-
意味もなくキヤノン小三元
いつのまにか揃っていた小三元を撮影してみた。 別に意味は無い。 ちょっとプログラミングに疲れたので





ご質問は掲示板へお願いいたします。