恋に落ちるブログを作ってみる
公開日:
:
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
関連記事
-
-
Final Cut Pro X の編集済データを外付けHDに移動する
天気が良いので色調整&撮影で遊んでいます。新しいiPhoneを買うぐらいならGH4が欲しいけど、一緒
-
-
パナソニックの電子式シャッターが画質に悪い影響&ギンバル妄想企画
GH4関連の話題で、ちょっと気になる記事を発見したので読んでみました。Micro 4/3rds Ph
-
-
ハンディカムCX630Vにアルカスイス互換(ARCA SWISS TYPE)クイックリリースプレート
激安が好き。というより貧乏なので激安じゃなきゃ買えません。というわけで、今回もアマゾン様で発見したク
-
-
カメラ関係で気になっているモノなど
ebay の 3-Axis AlexMos 32Bit Simple BGC V3.0 Brushl
-
-
Final Cut Pro X のマッチカラーを試す
予想通りなかなか出てこない SimpleBGC_GUI_2_42 ですが、あいにく天気もイマイチなの





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