ทุกวันนี้ฉันเห็นการเกิดขึ้นของ smarty 3 alpha ดังนั้นฉันจึงใช้เวลาไปเยี่ยมชมและสำรวจ ข้อความต่อไปนี้โดยพื้นฐานมาจาก readme:
โครงสร้างไฟล์พื้นฐาน
ดัชนี.php
/libs/
Smarty.class.php #ไฟล์หลัก
/libs/sysplugins/ #ปลั๊กอินภายใน
ภายใน.*
/plugins/ #ปลั๊กอินภายนอก สามารถขยายได้อย่างอิสระ
function.mailto.php
ตัวดัดแปลง.escape.php
/templates/ #Template อาจเป็น php ล้วนๆ หรือเทมเพลตอัจฉริยะแบบดั้งเดิมก็ได้
ดัชนี.tpl
Index_view.php เป็นตัวอย่างโค้ดการโทรอันชาญฉลาดแบบคลาสสิก:
ต้องการ('Smarty.class.php');
$ฉลาด=ใหม่ฉลาด;
$smarty->มอบหมาย('foo','bar');
$smarty->display('index.tpl');
SINGLETON
เวอร์ชันก่อนหน้า
สิ่งนี้สมเหตุสมผลหรือไม่?
ข้อมูลโค้ด:
$ฉลาด=ฉลาด::อินสแตนซ์();
เทมเพลต smarty ก่อนเทมเพลตจะเทียบเท่ากับการกำหนดชุดภาษาแท็กใหม่ ดังนั้น smarty3 จึงจัดเตรียมแบบฟอร์มเทมเพลตใหม่ที่รองรับเทมเพลตไวยากรณ์ PHP โดยตรง
แต่เกิดคำถามว่าเรายังจำเป็นต้องใช้เทมเพลตหรือไม่?
ตัวอย่างการอ้างอิงเทมเพลตประเภท PHP:
ข้อมูลโค้ด:
$smarty->display('php:mytemplate.tpl');
สามารถใช้ไวยากรณ์ที่คุ้นเคยได้โดยตรงในเทมเพลต: <?=$foo?> <?=$bar?>
หากคุณใช้เทมเพลต PHP ปัญหาด้านความปลอดภัยจะต้องได้รับการแก้ไขด้วยตัวเอง แต่นี่ไม่ใช่ปัญหาสำหรับทีมที่โตแล้ว
นอกจากนี้ การสนับสนุนใหม่สำหรับเทมเพลตประเภทสตริงให้ความรู้สึกแข็งแกร่งยิ่งขึ้น และเส้นทางที่อยู่ห่างจากเทมเพลตก็เริ่มไกลออกไปมากขึ้นเรื่อยๆ:
ข้อมูลโค้ด:
$smarty->display('string:นี่คือเทมเพลตของฉัน, {$foo}!');
ลิงค์ที่เกี่ยวข้องของ smarty3
Smarty 3 Alpha พร้อม SVN--ค่อนข้างประหยัดในการเลือกบริการ svn ที่จัดทำโดย googlecode
กลุ่มส่งเมลนักพัฒนา smarty 3