Part1:
a.php
<?php//---------
// 初期処理
//---------
// Smartyインスタンス生成とか、date_default_timezone_setとか、DB接続とか
require_once('Smarty.class.php');
$smarty = new Smarty();//-----------
// メイン処理
//-----------
// SQL投げてデータ取ってきて設定するとか、メール送信するとか
$price1 = 100;
$price2 = 200;// 何か色々やる
// 何か色々やる
// 手数料を計算して加算する
$price1 += $price1 * 0.05;// 何か色々やる
// 消費税を計算して加算する
$price1 += $price1 * 0.05;// 何か色々やる
// 何か色々やる
// 何か色々やる
// 手数料を計算して加算する
$price2 += $price2 * 0.05;// 何か色々やる
// 消費税を計算して加算する
$price2 += $price2 * 0.05;$smarty->assign('price1', $price1);
$smarty->assign('price2', $price2);//---------
// 終了処理
//---------
// 画面の表示とか
$output_html = $smarty->fetch('テンプレートファイル名');
echo $output_html;
Part2:
a.php
<?php// 手数料を計算する
function calc_commission($price)
{
// 振込手数料の様に減算する可能性もあるので、ここでは加算はしない
// 原則として、一つの関数内では、沢山処理をしない方が良い
// でも、振込手数料なら率が別になる可能性もあるので、書いちゃっても良いか?
return $price * 0.05;
}// 消費税を計算する
function calc_payment_tax($price)
{
// こっちは同時に加算しちゃっても良いかも
return $price * 0.05;
}//---------
// 初期処理
//---------
// Smartyインスタンス生成とか、date_default_timezone_setとか、DB接続とか
require_once('Smarty.class.php');
$smarty = new Smarty();//-----------
// メイン処理
//-----------
// SQL投げてデータ取ってきて設定するとか、メール送信するとか
$price1 = 100;
$price2 = 200;// 何か色々やる
// 何か色々やる
// 手数料を計算して加算する
$price1 += calc_commission($price1);// 何か色々やる
// 消費税を計算して加算する
// こっちは同じ関数に入れちゃダメ!
// 5%になっているのはたまたまなっているだけで、手数料率が変わったら消費税率も変わる保証はないので
// コメント書いているから気付きやすいけど、書いてなかったらやりそう
$price1 += calc_payment_tax($price1);// 何か色々やる
// 何か色々やる
// 何か色々やる
// 手数料を計算して加算する
$price2 += calc_commission($price2);// 何か色々やる
// 消費税を計算して加算する
$price2 += calc_payment_tax($price2);$smarty->assign('price1', $price1);
$smarty->assign('price2', $price2);//---------
// 終了処理
//---------
// 画面の表示とか
$output_html = $smarty->fetch('テンプレートファイル名');
echo $output_html;
Part3:
a.php
<?php// 手数料を計算する
function calc_commission($price)
{
// 振込手数料の様に減算する可能性もあるので、ここでは加算はしない
// 原則として、一つの関数内では、沢山処理をしない方が良い
// でも、振込手数料なら率が別になる可能性もあるので、書いちゃっても良いか?
return $price * 0.05;
}// 消費税を計算する
function calc_payment_tax($price)
{
// こっちは同時に加算しちゃっても良いかも
return $price * 0.05;
}//---------
// 初期処理
//---------
// Smartyインスタンス生成とか、date_default_timezone_setとか、DB接続とか
require_once('initialize.php');//-----------
// メイン処理
//-----------
// SQL投げてデータ取ってきて設定するとか、メール送信するとか
$price1 = 100;
$price2 = 200;// 何か色々やる
// 何か色々やる
// 手数料を計算して加算する
$price1 += calc_commission($price1);// 何か色々やる
// 消費税を計算して加算する
// こっちは同じ関数に入れちゃダメ!
// 5%になっているのはたまたまなっているだけで、手数料率が変わったら消費税率も変わる保証はない
// コメント書いているから気付きやすいけど、書いてなかったらやりそう
$price1 += calc_payment_tax($price1);// 何か色々やる
// 何か色々やる
// 何か色々やる
// 手数料を計算して加算する
$price2 += calc_commission($price2);// 何か色々やる
// 消費税を計算して加算する
$price2 += calc_payment_tax($price2);$smarty->assign('price1', $price1);
$smarty->assign('price2', $price2);//---------
// 終了処理
//---------
// 画面の表示とか
require_once('finalize.php');
show_html($smarty, 'テンプレートファイル名');
b.php
<?php//---------
// 初期処理
//---------
// Smartyインスタンス生成とか、date_default_timezone_setとか、DB接続とか
require_once('initialize.php');//-----------
// メイン処理
//-----------
// SQL投げてデータ取ってきて設定するとか、メール送信するとか// 画面が違うので、さっきとは違う事をやっている
//---------
// 終了処理
//---------
// 画面の表示とか
require_once('finalize.php');
show_html($smarty, 'テンプレートファイル名');
initialize.php
<?php//---------
// 初期処理
//---------
// Smartyインスタンス生成とか、date_default_timezone_setとか、DB接続とか
require_once('Smarty.class.php');
$smarty = new Smarty();
finalize.php
<?php// 画面を表示する
function show_html($smarty, $template_file_name)
{
$output_html = $smarty->fetch($template_file_name);
echo $output_html;
}
Part4:
a.php
<?php// 手数料を計算する
/*function calc_commission($price)
{
// 振込手数料の様に減算する可能性もあるので、ここでは加算はしない
// 原則として、一つの関数内では、沢山処理をしない方が良い
// でも、振込手数料なら率が別になる可能性もあるので、書いちゃっても良いか?
return $price * 0.05;
}*/// 消費税を計算する
/*function calc_payment_tax($price)
{
// こっちは同時に加算しちゃっても良いかも
return $price * 0.05;
}*///---------
// 初期処理
//---------
// Smartyインスタンス生成とか、date_default_timezone_setとか、DB接続とか
require_once('initialize.php');//-----------
// メイン処理
//-----------
// SQL投げてデータ取ってきて設定するとか、メール送信するとか
$price1 = 100;
$price2 = 200;// 何か色々やる
// 何か色々やる
// 手数料を計算して加算する
require_once('utility.php');
$price1 += utility::calc_commission($price1);// 何か色々やる
// 消費税を計算して加算する
// こっちは同じ関数に入れちゃダメ!
// 5%になっているのはたまたまなっているだけで、手数料率が変わったら消費税率も変わる保証はない
// コメント書いているから気付きやすいけど、書いてなかったらやりそう
$price1 += utility::calc_payment_tax($price1);// 何か色々やる
// 何か色々やる
// 何か色々やる
// 手数料を計算して加算する
$price2 += utility::calc_commission($price2);// 何か色々やる
// 消費税を計算して加算する
$price2 += utility::calc_payment_tax($price2);$smarty->assign('price1', $price1);
$smarty->assign('price2', $price2);//---------
// 終了処理
//---------
// 画面の表示とか
require_once('finalize.php');
show_html($smarty, 'テンプレートファイル名');
b.php
<?php//---------
// 初期処理
//---------
// Smartyインスタンス生成とか、date_default_timezone_setとか、DB接続とか
require_once('initialize.php');//-----------
// メイン処理
//-----------
// SQL投げてデータ取ってきて設定するとか、メール送信するとか// 画面が違うので、さっきとは違う事をやっている
//---------
// 終了処理
//---------
// 画面の表示とか
require_once('finalize.php');
show_html($smarty, 'テンプレートファイル名');
c.php
<?php//---------
// 初期処理
//---------
// Smartyインスタンス生成とか、date_default_timezone_setとか、DB接続とか
require_once('initialize.php');//-----------
// メイン処理
//-----------
// SQL投げてデータ取ってきて設定するとか、メール送信するとか
$price1 = 100;
$price2 = 200;// 何か色々やる
// 何か色々やる
// 手数料を計算して加算する
require_once('utility.php');
$price1 += utility::calc_commission($price1);// 何か色々やる
// 何か色々やる
// 何か色々やる
// 何か色々やる
// 手数料を計算して加算する
$price2 += utility::calc_commission($price2);// 何か色々やる
$smarty->assign('price1', $price1);
$smarty->assign('price2', $price2);//---------
// 終了処理
//---------
// 画面の表示とか
require_once('finalize.php');
show_html($smarty, 'テンプレートファイル名');
utility.php
<?phpclass utility
{
private function __construct()
{
}// 手数料を計算する
static public function calc_commission($price)
{
// 振込手数料の様に減算する可能性もあるので、ここでは加算はしない
// 原則として、一つの関数内では、沢山処理をしない方が良い
// でも、振込手数料なら率が別になる可能性もあるので、書いちゃっても良いか?
return $price * 0.05;
}// 消費税を計算する
static public function calc_payment_tax($price)
{
// こっちは同時に加算しちゃっても良いかも
return $price * 0.05;
}
}
Part5:
controller.php
<?phpclass controller
{
public function execute()
{
//---------
// 初期処理
//---------
// Smartyインスタンス生成とか、date_default_timezone_setとか、DB接続とか
require_once('initialize.php');
require_once('utility.php');// リクエストパラメータからクラスインスタンスを生成する
// 例:<form action="controller.php?p=a" method="post">// 実際には、リクエストパラメータ値をチェックしてから、requireすべし
// require_once('/etc/passwd')とか(ディレクトリ・トラバーサル)にならない様に
// 設定ファイルにクラス名の一覧を書いておいて、その中にリクエストパラメータ値が存在するかどうかをチェックするのが良いと思う
$p = $_GET['p'];
require_once($p);
$obj = new $p;
// 引数の$smartyは、上記のinitialize.php内にある変数
$obj->set_smarty($smarty);
//---------------
// メイン処理実行
//---------------
$obj->execute();//---------
// 終了処理
//---------
// 画面の表示とか
require_once('view.php');
$view = new view();
// 引数の$smartyは、上記のinitialize.php内にある変数
$view->set_smarty($smarty);
$view->show_html('テンプレートファイル名');
}
}$controller = new controller();
$controller->execute();
model.php
<?phpclass model
{
public function __construct()
{
$this->init();
}public function init()
{
$this->set_smarty(null);
}public function set_smarty($smarty)
{
$this->smarty = $smarty;
}public function get_smarty()
{
return $this->smarty;
}// メイン処理実行
public function execute()
{
}
a.php
<?phpclass a extends model
{
// 処理実行
public function execute()
{
//-----------
// メイン処理
//-----------
// SQL投げてデータ取ってきて設定するとか、メール送信するとか
$price1 = 100;
$price2 = 200;// 何か色々やる
// 何か色々やる
// 手数料を計算して加算する
//require_once('utility.php');
$price1 += utility::calc_commission($price1);// 何か色々やる
// 消費税を計算して加算する
// こっちは同じ関数に入れちゃダメ!
// 5%になっているのはたまたまなっているだけで、手数料率が変わったら消費税率も変わる保証はない
// コメント書いているから気付きやすいけど、書いてなかったらやりそう
$price1 += utility::calc_payment_tax($price1);// 何か色々やる
// 何か色々やる
// 何か色々やる
// 手数料を計算して加算する
$price2 += utility::calc_commission($price2);// 何か色々やる
// 消費税を計算して加算する
$price2 += utility::calc_payment_tax($price2);$this->get_smarty()->assign('price1', $price1);
$this->get_smarty()->assign('price2', $price2);
}
}
b.php
<?phpclass b extends model
{
public function execute()
{
//-----------
// メイン処理
//-----------
// SQL投げてデータ取ってきて設定するとか、メール送信するとか// 画面が違うので、さっきとは違う事をやっている
}
}
c.php
<?phpclass c extends model
{
public function execute()
{
//-----------
// メイン処理
//-----------
// SQL投げてデータ取ってきて設定するとか、メール送信するとか
$price1 = 100;
$price2 = 200;// 何か色々やる
// 何か色々やる
// 手数料を計算して加算する
//require_once('utility.php');
$price1 += utility::calc_commission($price1);// 何か色々やる
// 何か色々やる
// 何か色々やる
// 何か色々やる
// 手数料を計算して加算する
$price2 += utility::calc_commission($price2);// 何か色々やる
$this->get_smarty()->assign('price1', $price1);
$this->get_smarty()->assign('price2', $price2);
}
}
view.php
<?phpclass view
{
public function __construct()
{
$this->init();
}public function init()
{
$this->set_smarty(null);
}public function set_smarty($smarty)
{
$this->smarty = $smarty;
}public function get_smarty()
{
return $this->smarty;
}// 画面を表示する
public function show_html($template_file_name)
{
// HTMLの文字列を取得する
$output_html = $this->get_smarty()->fetch($template_file_name);// 画面を表示する
echo $output_html;
}private $smarty;
}
参考資料:
http://www.m-fr.net/PESEF/on_the_way/