php+smarty (初心者向け)
TRANSCRIPT
PHP + Smarty boomerang
PHP ・Webサーバの拡張機能
・PHP: Hypertext Processor
・動的にWebページを生成する
・DB(データベース)との連携
Smarty とは PHP用テンプレートエンジン
<msg> {$var} </msg>
data
Template
TemplateEngine
Result
Smartyの動作 (1/2) <html> <title> ページ名 </title> <p> テキスト </p> </html>
ページの構成はどれも同じ
<html> <title> ページ名 </title> <p> テキスト </p> </html>
<html> <title> ページ名 </title> <p> テキスト </p> </html>
Smartyの動作 (2/2) <html> <title> {$title} </title> <p> {$text} </p> </html>
<html> <title> ページ名 </title> <p> テキスト </p> </html>
生成前 生成後
変数に代入
トップ
ゲーム
タイトル
タイトル
タイトル
タイトル
タイトル
タイトル
タイトル
タイトル
タイトル
タイトル
タイトル
タイトルサウンド
イラスト
部員
名前
名前
名前
名前
名前
名前
名前
名前
名前
名前
名前
名前
アクセス
導入前(1/2)
トップ
ゲーム
タイトル
タイトル
タイトル
タイトル
タイトル
タイトル
タイトル
タイトル
タイトル
タイトル
タイトル
タイトルサウンド
イラスト
部員
名前
名前
名前
名前
名前
名前
名前
名前
名前
名前
名前
名前
アクセス
管理が大変
導入前(2/2)
トップ
ゲーム
サウンド
イラスト
部員
アクセス
$game
$nameデータベース
$sound
$illust
導入後
ページ生成の流れ
ゲーム① ゲーム② ゲーム③ ゲーム④
データベース
ゲームトップ
生成された コンテンツ
ゲーム①
遷移
ゲームのリスト ゲームの詳細情報
デザインの統一
ヘッダー
フッター
テンプレート
コンテンツ
コンテンツ
コンテンツ
ゲーム
アクセス
トップ
変更が容易
セキュリティ
SQLインジェクション対策
・ホワイトリスト ・正規表現
例: /[0-9]{4}/
tp://localhost/smarty/php/game.php?id=bakutenzushi&yr=2013
まとめ
管理が容易 ・記述が容易 ・DBで一括管理 ・バグが少ない ・JavaScriptと競合しない