استفاده از template engine یا خود Php?


#1

سلام .خب دوستان فلسفه وجود template engine چیه و چرا باید در php که خودش میتونه به عنوان بهترین تمپلت انجین استفاده بشه باید از تمپلت انجین های دیگه مثل smarty و… استفاده کرد ؟


#2

هدف اصلی استفاده از تمپلت انجین ساده کردن، قابل نگهداری و دباره استفاده کردن و بالا بردن امنیت هست.


#3

خب هدف دیگه ای مثل اینکه فرضا زبان x چون قابلیت ترکیب شدن با تگ های html رو نداره آیا نمیتونه باشه؟


#4

چه زبانی؟ در همه زبان ها میشه html نوشت حتی اگر زبان برنامه نویسی نباشند


#5

خب منظورم اینه :
برای مثال فایل edit.html

hello <?php echo ""; ?<

به غیر php چه زبون هایی میتونن به این نحو اجرا بشن؟


#6

هر زبانی که ماژل IO داشته باشه، html فقط txt معمولیه


#7

منظورم کارهای io نیست .
همه چی خارج از تگ های php به وسیله مفسرش نادیده گرفته میشه که این باعث میشه php بتونه با HTML CSS JS به خوبی مخلوط بشه . این ویژگی باعث میشه تا php بتونه داخل یه سند html هم به خوبی جاسازی بشه و همین ویژگی سبب میشه php خودش یه موتور قالب عالی باشه .
آیا تو الکسیر یا جاوا یا پایتون میشه بهش یک فایل با پسوند .html داد و داخل این فابل علاوه بر کدهای css html js کدهای خود زبانم وجود داشته باشه بعد کامپایلر یا مفسر کدهای غیر زبان مربوطه رو نادیده بگیره ؟


#8

فکر کنم چند بار پاسخ این سوال رو دادم، بله میشود


#9

درود خدمت شما . بی ادبی بنده رو ببخشید ولی من بیشتر فکر می کنم شما خودتون رو درگیر مواردی می کنید که مثلا در یک پروژه بسیار بزرگ چندین ۱۰ساله استفاده می شه و هم چنین دارید مقاومت می کنید در استفاده از یک امکان جدید که به شما خدمات زیادی رو می ده

به عنوان مثال شما به یکی از این تمپلیت انجین های خوب و قدیمی مثلا
https://twig.symfony.com

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

یک مثال می زنم : من می خواستم از صفر یک وب اپ درست کنم که کلا گوگل درایو را مدیریت کند و می خواستم دقیقا این کتابخانه را از صفر بزنم و بعد دیدم واقعا گوگل بی شعور تر از اونه که مثل آدم خدمات بده با استفاده از یک کتابخانه دیگه هم کارم کمتر شد هم امکاناتی که قبلا فکرشو نکرده بودم نیز در اختیارم بود .

حال بخاطر زیبایی کار و نگهداری مناسب و همینطور امنیت خوب twig به عنوان مثال یک آپشن برای فریم ورک http://gantry.org شده است و به همینمنظور خیلی ها دوست داشند ازش استفاده بکنند حتی برای طراحی قالب جوملا

بخاطر همین من فکر می کنم انقدر دقیق شده روی موضوعات اختصاصی باعث از دست دادن اصل موضوع می شود و همین موضوع فرست شما برای بهینه کردن کد را از شما می گیرد . در صورتی که تیم های بزرگی سرکار هستند و همینطور شرکت های بزرگی در حال استفاده .

Twig is a modern template engine for PHP
Fast: Twig compiles templates down to plain optimized PHP code. The overhead compared to regular PHP code was reduced to the very minimum.
Secure: Twig has a sandbox mode to evaluate untrusted template code. This allows Twig to be used as a template language for applications where users may modify the template design.
Flexible: Twig is powered by a flexible lexer and parser. This allows the developer to define its own custom tags and filters, and create its own DSL.

اما در مورد جوملا و وردپرس کمی این موضوع تفاوت دارد نه در اصل موضوع بلکه در کاربرد و خروجی استاندارد نهایی. در جوملا و وردپرس و دیگر سیستم ها بسیار این احساس نیاز می شود که ما جوری قالب و افزونه بزنیم که برای تمام سایت ها انعطاف پذیر باشد . این صورت نباشد یکی کامپوننتی که می زد در یک قالب بدون شکل مناسب نمایش داده شود و یکی دیگر نیز نیاز به کدنویسی مجدد برای ساختار مناسب حداقلی, به همین دلیل مواردی مناسب برای درک بهتر و هم چنین استاندارد سازی درست شده است از جمله jdoc

این موارد همش نظر شخصی هست
تشکر
شهریار


#10

هدف از تمپلت انجین‌ها در php پیاده سازی استاندارد اصول کد نویسی MVC هست.

هدف اصلی تمپلت انجین‌ها جدا کردن کدهای بخش (view) از مدل و کنترولرها و در کل میشه گفت بکند هستش.

هدف‌های فرعی هم به همراه داره مثل افزایش امنیت، درگیر نشدن طراح قالب با کدهای php و…

برترین و اصولی ترین تمپلت انجین php هم Twig هستش؛ البته تمپلت انجین‌های دیگه مثل blade هم بدلیل استفاده در فریم ورک لاراول محبوب شدند.


#11

شاید به پیاده سازی mvc کمک کنه اما هدف mvc نیست،
با باقیش موافقم هرچند کلا توصیه php رو بزارید کنار :smiling_imp::smiling_imp::smiling_imp:


#12

در جوملا و وردپرس هم به راحتی دروپال میشه از تمپلت انجین استفاده کرد و هیچ مانعی وجود نداره.
فکر کنم توی وردپرس از پلاگین Timber بشه برای این کار استفاده کرد.
با دلایل شما برای استفاده نکردن تمپلت انجین در وردپرس و جوملا موافق نیستم و فکر میکنم این فقط یک ضعف میتونه باشه


#13

شهریار جان متاسفانه منظور من رو متوجه نشدی
بحث از اونجایی شروع صد که من به @toomaj عزیز گفتم خود php بهترین تمپلت انجین است . ببینید من مشکلی با تمپلت انجین ندارم و اتفاقا خودم هم ازش استفاده میکنم تو بقیه زبون ها . حرف من اینه که خود php بهترین موتور قالب در جهانه و وقتی خودش هست چرا باید از چیز دیگه استفاده کرد ؟مگر مفسر php هرچی بعد از تگ های php بیاد نادیده نمیگیره ؟


#14

متاسفانه هدف اصلی موتور قالب برای ساختار mvc نیس و کم نیستن سیستم هایی که معماری mvc ندارن از موتور قالب هم استفاده میکنن


#15

آقا تمام منظور من اینه وقتی خود php بهترین موتور قالب هست چرا باید از یه موتور قالب دیگه استفاده کرد ؟


#16

دوستان عزیز و سروران گرامی؛ من عرض نکردم تنها هدف موتور قالب برای ساختار MVC هست ولی از عمده اهدافش در php برای استاندارد کردن چارچوب MVC بود.

من کاری با اسکرپت‌های غیر استاندارد که توسط برنامه نویسان آماتور نوشته شده! ندارم!

وقتی ساختار MVC رو درک کنید (جدا کردن بخش‌های مدل، ویو، کنترولر) می‌فهمید این امر در php میسر نیست مگر با موتور قالب.

اهداف اصلی موتور قالب رو در پیامی قبلی میتونید ملاحظه کنید.


#17

از کی تا حالا php موتور قالب شده؟! :roll_eyes:


#18

دوست عزیز از زمان های خیلی قبل بوده متاسفانه شما بی خبر بودید
http://fabien.potencier.org/templating-engines-in-php.html
اتفاقا یکی از برتری های php نسبت به بقیه زبان ها همینه و برنامه نویساش شدیدا رو این موضوع تاکیید دارن که کد php رو میشه به راحتی با css html مخلوط کرد حالا شما چرا خبر ندارین اینجاشو من نمیدونم😐


#19

شمام جزء برنامه نویسان سابق و قدیمی php هستید؛ و سوئیچ کرده به زبان جدید برای انجام امور :joy:

توصیتونو و به فال نیک میگیرم!

ولی من php رو به عنوان فریم ورک زبان قدرتمند c قبول دارم (یجورایی این ادعا درسته!!) و به لحاظ پرفومنس بالا، توسعه سریع، هزینه نگهداری پایین‌تر و… ترجیح میدم.


#20

اتفاقا باید بگم من همین چند شب پیش این امر رو میسر کردم و تا سر ماه اگر تموم بشه حتما نشونتون میدم .

بحث من سر این نبود که موتور قالب خوبه یا بد یا … حرف من این بود که تو php میشه خیلی راحت بدون استفاده از موتور قالب کار کرد و خود php بهترین موتور قالبه جهانه
که متاسفانه برداشت اشتباه شد