恋に落ちるブログを作ってみる
公開日:
:
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
関連記事
-
-
高感度ジャイロオンで適応PIDオフにして自動PIDチューニング
Windows7が過日の破壊工作的アップデートでメタメタな状態。ソフトを立ち上げるとブルースクリーン
-
-
FC2ブログからワードプレスへ引越し(記事データ移行)
なんかAdsenseで怒られたので、これを機会に古いブログ記事を移転させてみました。思ったほど簡単だ
-
-
ポリナット&ポリビスってプラスチックなネジとナット
遅くても今週末までには BaseCam Electronics SimpleBGC_GUIとファーム
-
-
低価格無線LANルーターを選ぶのだ
居間で使っているNECのルーターが壊れたので新しいヤツを選んでみる。 無線LANルーターも色々
-
-
コレに決まりかな?電動スライダー雲台(?)
紅葉の撮影に行って、あまりの電線の多さに気が付きました。そういえば前に富士山バックの電線の絵が話題に





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