PHPで作ったカレー
野暮な解説は続きで。
カレーのはじまり
Hello <?php echo $_GET['curry'] ?>カレー
カレーに似て非なるもの
今日は<?php mysql_query('select * from curry where roux = '.$_GET['roux']) ?>カレー
ルーとライスを左右に分けたカレー
<?php
$res = $db->query('select * from curry where roux = '.$_GET['roux']);
$row = $res->fetchRow();
?>
今日は<?=$row[0] ?>カレー
器とライスを分けた欧風カレー
<?php
$res = $db->query('select * from curry where roux = '.$_GET['roux']);
$row = $res->fetchRow();
$view->assign('curry', $row[0]);
?>
今日は{curry}カレー
お母さんのカレーか何か
function cooking($tokubai) {
global $kibun;
$gu[] = buy($tokubai);
$gu[] = buy($kibun);
// ...
return call_user_func('gohan_yo');
}
密封されたレトルトカレー
<?php
$stmt = $db->prepare('select * from curry where choice = ?');
$res = $db->execute($stmt, array($_GET['choice']));
$row = $res->fetchRow();
?>
今日は<?php echo htmlspecialchars($row[0], ENT_QUOTES, 'UTF-8') ?>カレー
一箱千円の著名なレトルトカレー
管理画面にログインして「テンプレート編集」からHTMLを直接カスタマイズ出来ます。
<!--START CURRY-->
<tr class="header_line01">
<td class="cell_curry">
<?php _('This is a curry.') ?>
<?php getCurry() ?>
<?php _('This curry is end.') ?>
</td>
</tr>
<!--END CURRY-->
カップラーメンカレー味
class curryRamen extends cupRamen
{
function execute() {
$this->ramen = Ramen::doSelectOne('カレー');
$this->ramen .= Gu::findByTopping('チーズ');
}
}
作り置きのカレー
/usr/bin/php curry.php > /var/www/html/curry.html
シェフのカレー
$gu[] = new Jyagaimo();
$gu[] = new Tamanegi();
$gu[] = new Ninjin();
array_slice($gu);
$gyu = new Gyu(0.7);
$buta = new Buta(0.3);
$hikiniku = array($gyu, $buta);
shuffle($hikiniku);
$gu[] = new Niku($hikiniku);
$gu[] = new Mizu();
$curry = new Curry($gu, $roux, $spice);
$sara = new Sara($curry);
echo $sara->get('curry');
札幌スープカレー
class Nabe
{
function chouri() {
$gu[] = new Jyagaimo('北海道');
$gu[] = new Tamanegi('北海道');
$gu[] = new Ninjin('北海道');
$gu[] = new Tori('北海道');
$gu[] = new Kaisen('北海道');
$gu[] = new Spice('北海道');
$gu[] = new Mizu('北海道');
return new SoupCurry($gu);
}
愛妻カレー
new OregaImaIchibanKuitaiCurry();
野暮な解説。
「カレーのはじまり」は、Hello Worldから。XSS脆弱性あり。
「カレーに似て非なるもの」は、MVCがクソミソになってるイメージ。昔はみんなこうだった。
「ルーとライスを左右に分けたカレー」は、同一ファイルでロジックとコンテンツを上下に分けた例。
「器とライスを分けた欧風カレー」は、一世を風靡したSmartyでロジックファイルとテンプレートファイルを分けた例。
「お母さんのカレーか何か」は、関数ライブラリによる再利用性の向上と隠蔽化。
「密封されたレトルトカレー」は、XSSとSQLインジェクションの対策。サニタイズと呼ばれてた時代。
「一箱千円の著名なレトルトカレー」は、CMSのカスタマイズ。
「カップラーメンカレー味」は、OOPと古式ゆかしいフレームワーク。Railsが流行った時代。
「作り置きのカレー」は、重たいフレームワークを起動させない回避策としての静的HTML出力。
「シェフのカレー」は、DI(依存性の注入)。一番細かいが一番ややこしい。
「札幌スープカレー」は、DIコンテナ。北海道の設定で作るところがポイント。内地は内地で鍋の中身が変わる。
「愛妻カレー」は、DIコンテナを使う人。味に不満が出るまではこのカレーを食べ続ければ良い。