* این آموزش ها منبع اصلیشون از راهنمای Smarty هست البته من برداشت خودم رو نسب به این راهنما بیان میکنم به همراه مواردی که توی نت و کتب مختلف برای یادگیری این Template Engine جستجو کردم پس در صورتی که منبع خاصی باشی حتما اشاره میکنم
مبحث اول :
مقدمه :
تقریبا 2 سال پیش برای انجام یه پروژه قالبمند مجبور شدم دنبال یه موتور تمپلیت بگردم که با اسمارتی آشنا شدم میشه گفت با شناختن اسمارتی و بطور کلی Template Engine یه تحویل بزرگی توی طراحی - برنامه نویسی من پیش اومد (حالا چرا ؟! زیاد مهم نیست چون اینجا جاش نیست . . .) وقتی فهمیدم که اسمارتی یه کلاس Php هست که برای مدیریت کدهای استفاده شده در وب سایت بکار میره و موجب میشه که براحتی اجزاء سایت رو ویرایش کنیم برام خیلی مهم و جذاب بود بطور مثال شما درنظر بگیرید یه مطلبی که بصورت خبر در یک سایت منتظر شده چطور میتواند تیتر خبر / تاریخ انتشار خبر / نویسنده خبر / متن خبر را بصورت قالبمند نمایش دهد !؟ برای تحقق به این آرمان اسمارتی این امکان را میدهد که تمپلیتی قابل ویرایش و قابل استفاده در تگ های HTML طراحی کنیم ! با این اوصاف دیگه هم Programer و هم Designer در صورت نیاز چنانچه تمایل به دست بردن در ظاهر و یا کدهای سیستم داشته باشند بدون دخالت در حیطه کاری هم میتونند کار خودشون رو بدون هیچ مشکلی انجام دهند
خوب این یک مقدمه بود که فکر میکنم بصورت ساده و سلیس توضیح دادم بهتره حالا بریم سر اصل مطلب و برای بیان اون بهتره یه مقدار کتابی تر و رسمی تر صحبت کنیم
------------------------------
برای شروع اسمارتی بهتر است با سایت این موتور تمپلیت اشنا بشویم برای دسترسی به این کلاس و دریافت اخرین نسخه میتوانید از آدرس اینترنتی [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] جدیدترین پکیج که شامل اخرین تغییرات نیز میباشد دریافت کنید
Template Engine های فراوانی برای Php موجود هست که میتوان اسمارتی یکی از برترین های آنها دانست Smarty از Php و Zend Engine بهره میگیرد و برنامه ها را با کمترین زمان ممکن اجرا میکند چون اسمارتی یکبار الگو را کامپایل میکند تا زمانی که الگو تغییری حاصل نکند دیگر نیاز به کامپایل ان ندارد اط طرفی همانطور که در ادامه بطور مفصل عرض خواهم کرد Smarty از Caching به نحو احسنت بهره گرفته است
باید توجه داشت که Smarty بصورت شیءگرا طراحی شده و عمل میکند که برای استفاده از آن میبایست یک Instance از آن ایجاد کرد که نمونه آن در زیر آورده شده است
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
اسمارتی درون شاخه ای که فراخوانی میشود اما بدلیل موارد امنیتی الگو ها نباید درون شاخه هایی که از طریق وب قابل دسترسی میباشند جاگذاری شوند از این جهت برای معرفی مسیر Smarty بدین شکل عمل میکنیم
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
شاخه Template مسیری است که اسمارتی درون آن بدنبال فایل های tpl. میگردد (منظور فایل های مربوط به ساختار تمپلیت میباشد)
شاخه Compileمسیری است که اسمارتی درون آن الگوهای کامپایل شده را ذخیره میکند
شاخه Config مسیری است که اسمارتی درون آن بدنبال فایل های تنظیمات میگردد
شاخه Cache مسیری است که اسمارتی درون آن فایل های Cache شده خود را ذخیره میکند
روش دیگری نیز روشی دیگر جهت معرفی این متغییرها وجود دارد که روش ارث بری نامیده میشود که بصورت زی میتوانید عمل کنید.
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
خصوصیات اسمارتی Smarty
1- دارای سرعت زیاد میباشد
2- تا زمانی که در PHP خطایی رخ نداده باشد، مفید بود و بدون مشکل کار میکند.
3- فقط یکبار کامپایل می شود.
4- فقط فایلهایی را که تغییر کرده اند را دوباره کامپایل می نماید.
5- شما می توانید توابع سفارشی و یا متغیرهای ویرایشگر استفاده کنید، بنابراین قالبها قالب انعطاف پذیری پیدا می کنند.
6- قالب ها با استفاده از تگهای حائل (delimiter tag) یعنی {} ، {{}} ، <—{}--!> قابل پیکربندی می باشند.
7- ساختارهای if/elseif/else/endif در عبارات PHP گذاشته می شوند، یعنی عبارت {if …} می تواند ساده و یا پیچیده باشد.
8- اجازه استفاده بخش ها مثل if ها و غیره را بصورت نامحدود تودرتو وجود دارد.
9- می توان کدهای PHP را در فایلهای Template درون سازی نمود، اگر چه توصیه نمیشود
10- امکان ساپورت Caching که یکی از بزرگترین و بهترین قابلیت های اسمارتی محسوب میشود
* توجه : برای استفاده از اسمارتی به Php 4.0.6 به بالا نیاز است