FuelPHPを使ってみよう vol.02 “簡単なプログラム編”

おはす!

どうも、じゅじゅいちです。

さて、前回でFuelPHPを使うための準備が整いましたので、今回はとりあえず動くことを目的とした簡単なプログラムを組みたいと思います。

ここから書くことは知識が曖昧なので鵜呑みにするのは危険です。いろいろと分かり次第その都度更新していく所存です。

01.何を作るか?

今回はDBの内容をそのまま一覧として表示させるプログラムを組みたいと思います。

テーブルは以下のような簡単なものです。

テーブル名:idol

項目名 説明
no ユニークキーです
name 名前です
siteurl WEBサイトのURLです

これを一覧で表示させたいと思います。

02.DB設定ファイル

DB接続情報を記述します。

fuelphp-1.3/fuel/app/config/development/db.php

return array(
	'default' => array(
		'connection'  => array(
			'dsn'        => 'mysql:host=ホスト名;dbname=DB名',
			'username'   => 'ユーザー名',
			'password'   => 'パスワード',
		),
	),
);

ホスト名、DB名、ユーザー名、パスワードを各環境に合わせて修正すれば良いと思います。

03.Model

続いてDBにアクセスするModelを記述します。
fuelphp-1.3/fuel/app/classes/model/idol.php

<?php
class Model_Idol extends \Model
{
	public static function getIdolInfo(){
		return DB::query('select * from idol')->execute();
	}
}

クラス名はModel_Xxxxという感じに。あとはModelクラスを継承すれば良いと思います。DB::queryの引数は普通にSQLが書けますね。

04.Controller

続いてControllerです。
fuelphp-1.3/fuel/app/classes/controller/idol.php

<?php
use \Model\idol;
class Controller_Idol extends Controller
{
	public function action_list(){
		$idol_info = Model_Idol::getIdolInfo();
		$view=View::forge('idol/list');
		$view->set_global('idol_info',$idol_info->as_array());
		return $view;
	}
}

useで使用するModelを指定します。クラス名はController_XxxxでControllerクラスを継承すれば良いと思います。メソッドはaction_xxxxで、xxxxの部分はURLで使われるところです(後述)。流としてはModelからもらってきたデータをViewに渡しています。

05.View

続いてViewです。
fuelphp-1.3/fuel/app/views/idol/list.php

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>idol info</title>
<?php echo Asset::css('bootstrap.css'); ?>
</head>
<body>

<div class="container-fluid">

	<div class="row-fluid">

		<div class="span2">
			<h2>管理人</h2>
			<p><a href="http://jujuichi-party.net/">jujuichi</a></p>
		</div>

		<div class="span10">
			<h1>アイドル情報</h1>
			<table class="table table-bordered">
			<tr>
				<th scope="col">名前</th>
				<th scope="col">WEBサイト</th>
			</tr>
<?php foreach ($idol_info as $row): ?>
			<tr>
				<td><?=$row['name']?></td>
				<td><a href="<?=$row['siteurl']?>"><?=$row['siteurl']?></a></td>
			</tr>
<?php endforeach;?>
			</table>
 		</div>
	</div>

</div>

</body>
</html>

bootstrapが使えるのでそちらも学習が必要ですね。あとはforeachで回して出力すれば良いと思います。

06.実行

urlは

http://~~/fuelphp-1.3/public/index.php/idol/list/

のようになります。

“idol”がコントローラー名で、後ろの”list”がメソッド名ですかね。

で、実行すると以下のようになります。

とりあえず一覧が表示されましたね。めでたし。

次回からは細かいことを書いていこうと思いますが、お勉強が必要になるのでしばらく更新できないと思います。首を長くしてお待ちください。

それではまた。

コメント