PDA

View Full Version : سوال: Templating Engine ها در PHP



LORD AELX
پنج شنبه 07 مرداد 1389, 20:36 عصر
چند تا سوال در مورد Templating Engine ها داشتم:


مزایای استفاده از آن چیست؟ (غیر از تعریف اش یا سرعت اش بخاطر یک بار کامپایل شدن... میخوام بدونم دیگه چه چیزی هست)
معایب استفاده از آن چیست؟
آیا در پروژه های بزرگ کاربرد دارد و در آن ها مشکلی ایجاد نمی کند؟
معروف ترین و بهترین آن کدام است؟ (PEAR یا Smarty یا ...)
آیا Templating Engine ای مثل Smarty مستقیما به Zend مربوط است؟ (من هنوز با Framework های PHP کار نکرده ام و دقیقا نمیدونم چطوری هستند و چه امکاناتی دارند، فقط میخوام بدونم اینکه چیزی مثل Smarty از Zend استفاده کرده است دقیقا یعنی چه و آیا ما را ملزم به استفاده از Zend می کند؟ اگر می شود همین جا با اینکه ربطی به موضوع تاپیک نداره، یخورده راجع به Framework های PHP توضیح بدهید.)
گفته می شود فایل های tpl به دلایل امنیتی نباید در شاخه ای قرار داد که از وب قابل دسترسی باشد. غیر از اینکه اسامی متغیر ها در این مورد لو می رود، آیا مسئله دیگری هم هست که موجب به خطر افتادن امنیت وب سایت شود؟ راه حل چیست؟

متشکرم :قلب:

bestirani2
پنج شنبه 07 مرداد 1389, 20:50 عصر
چند تا سوال در مورد Templating Engine ها داشتم:


مزایای استفاده از آن چیست؟ (غیر از تعریف اش یا سرعت اش بخاطر یک بار کامپایل شدن... میخوام بدونم دیگه چه چیزی هست)
معایب استفاده از آن چیست؟
آیا در پروژه های بزرگ کاربرد دارد و در آن ها مشکلی ایجاد نمی کند؟
معروف ترین و بهترین آن کدام است؟ (PEAR یا Smarty یا ...)
آیا Templating Engine ای مثل Smarty مستقیما به Zend مربوط است؟ (من هنوز با Framework های PHP کار نکرده ام و دقیقا نمیدونم چطوری هستند و چه امکاناتی دارند، فقط میخوام بدونم اینکه چیزی مثل Smarty از Zend استفاده کرده است دقیقا یعنی چه و آیا ما را ملزم به استفاده از Zend می کند؟ اگر می شود همین جا با اینکه ربطی به موضوع تاپیک نداره، یخورده راجع به Framework های PHP توضیح بدهید.)
گفته می شود فایل های tpl به دلایل امنیتی نباید در شاخه ای قرار داد که از وب قابل دسترسی باشد. غیر از اینکه اسامی متغیر ها در این مورد لو می رود، آیا مسئله دیگری هم هست که موجب به خطر افتادن امنیت وب سایت شود؟ راه حل چیست؟

متشکرم :قلب:
1. طراحی رو از برنامه نویسی جدا میکنه
2. سرعت کمی کمتر میشه که قابل چشم پوشی هست
3. 100% کاربرد دارید، اصل استفاده در پروژه های بزرگ هست
4. Smarty
5. فریم ورک ها از mvc استفاده میکنند که ای مفهوم هم در نظر گرفته شده
این یعنی این که برنامه ما به سه لایه model ، view و control تقسیم میشه
6. از فریم ورک استفاده کنی مشکلی از نظر امنیت نداری

LORD AELX
پنج شنبه 07 مرداد 1389, 20:56 عصر
ممنون، ولی...


1. طراحی رو از برنامه نویسی جدا میکنه


این تعریفش هست که میدونستم. دیگه چه چیزهایی رو میشه به عنوان مزیت در نظر گرفت؟



4. Smarty


ظاهرا خود PHP هم دارای Templating Engine هست... میشه یک مرجع برای این دو معرفی کنید (قابلیت خود PHP و Smarty) و البته بگید از این بین استفاده از کدوم مناسب تره؟



5. فریم ورک ها از mvc استفاده میکنند که ای مفهوم هم در نظر گرفته شده
این یعنی این که برنامه ما به سه لایه model ، view و control تقسیم میشه
6. از فریم ورک استفاده کنی مشکلی از نظر امنیت نداری

بیشتر توضیح می دهید؟!

متشکرم :قلب:

bestirani2
پنج شنبه 07 مرداد 1389, 21:29 عصر
دلیل که استفاده میشه همینه و دلیل خاص دیگری ندارد و توی پروژه ها بزرگ بیشتر نمایان هست چون چند نفر مسئول برنامه نویسی و چند نفر طراحی ظاهری هستند که اگه این دو از هم جدا نشه نمیشه کار رو به صورت موازی انجام داد.

خود پی ایچ پی تا اونجام که من میدونم با pear این کار رو میتونه بکنه که smarty بهتر هست که فریم ورک از هر دو بهتر هست به نظرم

اینم یک نگاه بکن

http://softprojects.org/fa/KB/Articles/Analysis/MVC-Intoduction.aspx

LORD AELX
جمعه 08 مرداد 1389, 23:33 عصر
دوستان عزیز یک نفر میشه بیاد اینجا دقیقا و با تعریف و ذکر دلیل به من بگه که برای یک کار حرفه ای از Templating Engine استفاده کنم یا از یه Framework مثل Zend یا cakephp ؟؟

من آموزش Smarty که تو سایتش بود رو کامل خوندم، ولی هنوز راجع به Zend یا cakephp اطلاعات خاصی ندارم، خواهشا یک بزرگوار پیدا بشه و این قضایا رو برای من کامل جا بندازه.

متشکرم :قلب:

s_salavati2002
شنبه 09 مرداد 1389, 11:12 صبح
اصلا مقایسه بین template engine و framework کار درستی نیست
برای کارهای حرفه ای حتما از فریمورک استفاده کن چون توسعه کارتو سریع می کنه می تونی وقتتو رو تحلیل سیستم و طراحی اون بذاری و تمرکز کد نویسیت روی کنترل ها و ارتباط با پایگاه داده باشه تا روی نوشتن کدهای عمومی که همه جا هستن
اما درمورد template engine ها من خیلی موافق نیستم که ازشون استفاده بشه ، چون سرعتو میاره پایین
تنها مزیتش اینه که کسایی که از php سررشته ندارن بتونن برات قالب بزنن که خود اونم باید یه دوره کوتاه برای یادگرفتن smarty بگذرونن

taknegaar
شنبه 09 مرداد 1389, 15:56 عصر
اما درمورد template engine ها من خیلی موافق نیستم که ازشون استفاده بشه ، چون سرعتو میاره پایین
تنها مزیتش اینه که کسایی که از php سررشته ندارن بتونن برات قالب بزنن که خود اونم باید یه دوره کوتاه برای یادگرفتن smarty بگذرونن

منم موافقم؛
اصلا برخی از فریم ورکها فقط لایه نمایش رو جدا کردن و با همون php اونو میسازن،
خود php هم در حقیقت چیزی جدا از این مساله نبوده:
PHP: Hypertext Preprocessor

فقط برای خوانایی بهتر کدهای php ات هم میتونی از
Alternative syntax for control structures
استفاده کنی که در خود php هست:




<?php if ($a == 5): ?>
A is equal to 5
<?php endif; ?>



PHP offers an alternative syntax for some of its control structures; namely, if, while, for, foreach, and switch. In each case, the basic form of the alternate syntax is to change the opening brace to a colon (:) and the closing brace to endif;, endwhile;, endfor;, endforeach;, or endswitch
...


میتونی از این تمپ لایت انجین هم ایده بگیری:



Savant

it uses PHP itself as its template language so you don't need to learn a new markup system.

http://phpsavant.com