Psttt:次世代phpテンプレートエンジン
21801 ワード
Smartyは最もよく使われるテンプレートエンジンでしょう.似たようなエンジンも超多く、機能も大きく異なります.これらには最大の弱点があります.美工がHTMLページを作成した後、PHPプログラマーはSmartyコードをこのページに埋め込み、テンプレートファイルを作成しなければなりません.これにより、元のページの構造が破壊されます.美工が元のページを変更した場合、テンプレートファイルも変更しなければなりません.これは本当に憂鬱だ.
この問題を解決するために、画期的なPHPテンプレートエンジンが誕生しました:Psttt!
直接例を見てみましょう:美工が作ったHTMLページ、中のデータはすべてプレゼンテーションデータで、フィクションです.
この問題を解決するために、画期的なPHPテンプレートエンジンが誕生しました:Psttt!
直接例を見てみましょう:美工が作ったHTMLページ、中のデータはすべてプレゼンテーションデータで、フィクションです.
<
h1
id
='title'
>
Write our company name here
</
h1
>
PHPコード:a.php
$view
->
title
=
"
foo company
"
;
これはSmartyとあまり いません.
Pstttは でファイルを する があります.
h1#title = $title;
された コード:
<
h1 id
=
"
title
"
><?
php
echo
$this
->
title;
?></
h1
>
amazing! が いですね. はhtmlページを に することができ、h 1とid=titleを すればよい.h 1#titleは、なんとCSSセレクタの をしています.
もっと な を てみましょう
が したHTMLページ:
<
div
id
='product_list'
>
<
div
class
='product'
>
<
h2
>
Mockup product 1
</
h2
>
<
img
src
='/images/default_product1.jpg'
/>
<
p
>
Some product description goes here!
</
p
>
<
span
>
Price:
<
strong
>
99999
</
strong
></
span
>
</
div
>
<
div
class
='product'
>
<
h2
>
Mockup product2
</
h2
>
<
img
src
='/images/default_product2.jpg'
/>
<
p
>
Some product description goes here!
</
p
>
<
span
>
Price:
<
strong
>
888.99
</
strong
></
span
>
</
div
>
</
div
>
phpコード:
$view
->
products
=
array
(
1
=>
array
(
'
title
'
=>
'
Product 1
'
,
'
img
'
=>
'
/img/products/1.jpg
'
,
'
description
'
=>
'
the best product ever
'
,
'
price
'
=>
'
$10
'
)
,
2
=>
array
(
'
title
'
=>
'
Product 2
'
,
'
img
'
=>
'
/img/products/2.jpg
'
,
'
description
'
=>
'
the second best product ever
'
,
'
price
'
=>
'
$30
'
)
);
です.
Pstttコード:
//we just need one product to fill in data and iterate
#product_list>.product|deleteAllButFirst
//add iteration code, php foreach that will fill in data
#product_list>.product|before = <?php if ($this->products) foreach($this->products as $product ):?>
#product_list > .product> h2 = $product[title]
#product_list > .product > img|src = $product[img]
#product_list > .product > p = $product[description]
#product_list > .product > .span > strong = $product[price]
#product_list>.product|after = <?php endforeach;?>
された コード:
<
div
class
=
"
user_box
"
>
Welcome
<
strong
class
=
"
username
"
>
Demo user
1
</
strong
>
</
div
>
<
div id
=
"
product_list
"
>
<?
php
if
(
$this
->
products)
foreach
(
$this
->
products
as
$product
)
:?>
<
div
class
=
"
product
"
>
<
h2
><?
php
echo
$product
[title];
?></
h2
>
<
img src
=
"
<?php echo
$product
[img];?>
"
/>
<
p
><?
php
echo
$product
[description];
?></
p
>
<
span
>
Price
:
<
strong
><?
php
echo
$product
[price];
?></
strong
></
span
>
</
div
>
<?
php
endforeach
;
?>
</
div
>
Smartyを するよりも、Pstttコードファイルを で する があります. のメリットは、 がページ を している 、 のページを に することができ、PHPプログラマーは もしなくてもいいということです. には でしょう.
については、 を してください.
http://codeassembly.com/Psttt!-full-documentation/
ソースコードはここでダウンロードできます.
http://github.com/givanz/psttt
http://www.zhaokunyao.com/archives/1236