اول از همه بگیم که قرار twig در وردپرس را بررسی کنیم:

بعضی ها در مورد آینده وردپرس مقاله هایی می نویسند و خیلی ها هم اعتقاد دارند که وردپرس فاقد یک زبان قالب(موتور قالب) است و از آنجاییکه پلتفرم هایی مثل لاراول، Django، روبی و حتی دروپال دارای این زبان قالب یا موتور قالب است چرا نتوان در وردپرس هم از این موتور قالب استفاده کرد. حالا این را هم در نظر بگیرید که “وردپرس حدود ۲۵% سایت های جهارن را در دست دارد” آن هم سیستمی که با پی اچ پی نوسته شده از موتورهای قالبی که با پی اچ پی نوشته شده است مثل twig، blade و … بی بهره باشد! اما هنوز هم زمان از دست نرفته و خبر خوب اینکه می توان از موتور قالب در طراحی وردپرس هم استفاده کرد.

خبر خوب دقیقا همین است! موتور قالب Twig که در درون یک افزونه تحت عنوان Timber است می تواند به ما در نوشتن کد های خیلی تمیز و کدهای ماژولار در وردپرس کمک کند. در این سری آموزشی، در مورد پیاده سازی و کار کردن با موتور Twig در وردپرس می پردازیم. اول از همه می گوییم Twig چیست و با دستورات ساده Twig شروع می کنیم. و در آموزش های بعد در مورد انواع مختلف نحوه استفاده موتور Twig در افزونه Timber در وردپرس می پردازیم. پس شروع می کنیم:

Twig چیست؟

Twig یک موتور قالب قابل انعطاف، سریع و امن برای PHP است. این موتور برای اولین بار توسط Fabien Potencier، خالق فریم ورک Symfony متولد شده است.

عموما وقتی شما در وردپرس کد می نویسید، کدهای PHP و HTML در هم هستند و در هم گره خوردند(دقیقا مثل ماکارونی) که خب البته این ویژگی یک زبان ساختاری با کد نویسی تمیز نیست. به همین دلیل یک ساختار ماژولار که بخش نمایش یا view را از بخش داده ها یا data جدا کند لازم است. با موتور Twig می توانید پایه نمایش(view) را از اصل و هسته نرم افزار جدا کنید. Twig بر پایه معماری MVC یا Model-View-Contoller که به کد نویسی تمیز کمک می کند کار می کند.

چرا از Twig استفاده کنیم؟

در طول این چند سال موتور های قالب پی اچ پی زیادی توسعه داده شدند، اما Twig در زمینه های زیر مطمئنا فراتر از بقیه است.

ویژگی غنی بودن(دارای ویژگی های زیاد)

Twig یکی از موتورهای قالب پی اچ پی غنی و قدرتمند است. توییگ از ارث بری چندگانه و فیلتر کردن خودکار خروجی پشتیبانی می کند و کمک می کند که قالب را به چند بلاک یا بخش برای طراحی ماژولار تقسیم کرد. نه تنها این، بلکه توسعه دهنده ها می توانند افزونه های بیشتری برای نیازهای خود برای این زبان قالب نویسی بنویسند.

سریع و موثر

قالب هایی که با Twig ترجمه می شوند، در مقایسه با قالب های عادی پی اچ پی از سنگینی کمتری برخوردار است. کد نویسی روتین خیلی بهینه شده و شما می توانید در زمان توسعه خیلی صرفه جویی کنید. و همچنین برای زمانی که می خواهید پایه های فریم ورک را تغییر دهید مفید است چون Twig به شما کمک می کند که لایه های قالب را جداسازی کنید، بنابراین می توانید بین فریم ورک های پس زمینه ارتباط برقرار کنید، که می تواند لاراول و یا وردپرس باشد.

رابط خوب بین طراح و توسعه دهنده

Twig برای هر دو طراح و توسعه دهنده مورد استفاده قرار می گیرد. حتی اگر شما کد نویس نیستید، استفاده از Twig ساده است، و استفاده به صورت ماژولار و مولفه ای یا کامپوننت محور در آن کاملا احساس می شود. نگارش Twig برای فهمیدن ساده است و نیازی نیست که در فایل های قالب از عملگر های پویای پی اچ پی استفاده کنید چون خود Twig عملگرهای توکار برای این منظور دارد. و در کل کاملا مدرن و با تمام استاندار های کدنویسی قابل سازگاری است. فیلتر کردن خروجی وقتی با Twigg اجرا می شود قابل فهم است.

بیایید با یک مثال کوچک شروع کنیم.

در کد نویسی پی اچ پی برای خروجی یک همچنین چیزی دارید:

در Twig این کد ها خیلی ساده تر شده. کد زیر فشرده شده کد بالایی است:

فیلتر کردن خروجی در Twig خیلی ساده است. فقط کافیست دو تا آکولاد اضافه کنید و نام متغیر را وارد کنید و خروجی را بگیرید. با استفاده از علامت pipe  و e بعد از متغیر می توانید فیلتر کردن را انجام دهید.( |e ) در این سه مطلب این سری بیشتر با این دستورات آشنا می شوید.

امنیت

خود موتور Twig داده ها را درون خودش برای ثبت در دیتابیس آماده می کند یا اصطلاحا sanitize می کند. حالت جعبه شنی هوشمند منحصر به فرد کدهای درونی را مانیتور می کند و بهترین نتایج ممکن را فیلتر می کند. (اصلاح جعبه شنی یعنی اینکه همونطور که در دنیای واقعی بچه ها درون جعبه شنی هر خرابکاری بکنند به سایر خونه آسیبی نمی رسد در دنیای برنامه نویسی و نرم افزار هم یعنی محیطی امن برای اجرای برنامه که اگر یک قسمت خراب باشد به جاهای دیگر برنامه آسیبی نمی رساند) این به این معنی است که قالبی که توسط کاربر تولید شده است می تواند به آسانی و با امنیت کامل پیاده سازی شود. محیط جعبه شنی یا sandbox می تواند بطور سراسری و یا محلی برای قالب های خاص شبیه به این فعال شود:

در هر نوع خطای دستوری Tiwgبا تولید پیامی که شامل جزئیاتی شامل نام فایل شما و شماره خطی که مشکل دارد عمل خطاگیری یا دیباگ را انجام می دهد.

قابلیت انعطاف

همانطور که در قبلا گفته شد Twig یک موتور قالب مدرن هست که که به این معنی است که با توجه به انعطاف این موتور عملکرد آن را توسعه دهید. توییگ قابلیت هایی دارد که در آن توسعه دهنده می تواند تگ، فیلتر و توابع جدید و … تعریف کند.

دیگر قابلیت ها

جدای از تمام ویژگی هایی که در بالا مطرح شد، Twig خیلی خوب و کامل مستند سازی شده است. api های آن و کتابخانه های قالب نویسی آن به ثبات رسیده(stable شده است) بنابراین می توانید در کار های پیچیده هم از آن استفاده کرد. کتاب اختصاصی آنلاین و api های کامل آن هم اکنون در دسترس است.

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

Timber: یکپارچه سازی با وردپرس

تا اینجا در مورد دو چیز بحث کردیم، اول اینکه باید از رویکرد ماژولار برای جدا نگه داشتن قالب از داده ها استفاده کنیم . دوم اینکه Twig میتواند در این کار به ما کمک کند. اما ارتباط این دو چگونه برقرار می شود؟

تلاش های زیادی صورت گرفته تا بهترین یکپارچه سازی بین Twig و wordpress صورت گیرد و یکی از آنها Timber است که بوسیله  آژانس Upstatement ساخته شده است. Timber از موتور قالب Twig استفاده می کند که کدنویسی تمیز و ماژولار را برای وردپرس امکان پذیر می کند.

Timber همراه با Twig می تواند در ساخت سریع و ماژولار قالب وردپرس کمک کند. به کمک این روش می توانید کدهای HTML را از فایل های PHP تفکیک کنید تا الگویی پایدارتر و قابل اطمینان پیاده سازی کنید. مفهوم جداسازی HTML از PHP به فایل های PHP اجازه می دهد تا کاملا روی داده ها و منطق برنامه تمرکز کنید و همچنین فایل های Twig به عنوان بخش HTML در لایه نمایش یا view برنامه عمل کند.

در کل، Timber سه وظیفه اصلی دارد:

  • یکپارچه سازی Twig و وردپرس
  • رندر کردن قالب های Twig
  • بستر استفاده از داده های وردپرس در Twig

من فکر می کنم که هدف کلی Timber این ها هستند:

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

Timber چگونه کار می کند

در یک مورد قالب معمولی وردپرس، تمام بخش های کد PHP و HTML در همان فایل PHP یکپارچه سازی و ویرایش می شود. هر چند با Timber ما فایل های قالب رابه دو فایل داده مختلف تجزیه می کنیم: فایل PHP، و فایل نمایش یا view که همان Twig است. پس، اولی با پسوند .php ذخیره می شود و دومی پسوند .twig را خواهد داشت. بنابراین، اگر شما فایل قالب برای single.php ایجاد می کنید، فایل های شما single.php و single.twig نامگذاری می شود.

بگذارید تمام آن را خلاصه کنم:

Timber فایل های قالب وردپرس شما را در فایل های PHP و HTML(Twig) اجرا می کند. با این روش واحد منطق از نمایش جدا می شود. راه های جدیدی را برای ساخت، استایل و نمایش قالب شما ارائه می دهد.

 

ادامـــه دارد…


 
ما مایلیم مطالب جدید را در کانال تلگرام به شما اطلاع دهیم.