329 بازدید مدت زمان مطالعه 4 دقیقه
| اسکریپت مورد نیاز: | Onepower, Wordpress, Joomla, PhpFox and ... |
|---|---|
| برنامهنویس: | امیر بصیر |
| ورژن: | 3.2.0 |
| ورژنهای پشتیبانی شده: | 2.0.0 |
| تکنولوژیها: | PHP |
| زبانها: | PHP |
| آخرین بهروزرسانی: | 3 هفته پیش - 1404-08-20 |
| نیازمندی ها: |
PHP 7.4 or Higher |
| آدرس پروژه: | بازدید از پروژه |
| آدرس گیتهاب: | مشاهده در گیتهاب |
| تغییرات: | مشاهده تغییرات |
Nova Template Engine، پاسخی بومی به چالشهای جهانی
(View Layer)." این چالش، جرقه ایجاد یک آرمان شهری جدید را زد: "ساخت یک اسکریپت حرفهای از پایه، با هستهای قدرتمند و کاملاً سفارشیشده." و اینگونه بود که پروژه عظیم Onepower متولد شد.
Twig (که نویسنده تجربه عملیاتی گستردهای در ماژولهای PhpFox با آن داشتند)، Blade و Plates اگرچه قدرتمند بودند، اما یا "حجم پردازشی و پیچیدگی غیرضروری" داشتند، یا "ساختار و سینتکس آنها الهامبخش و لذتبخش نبود." اینجا بود که ایده جسورانه "طراحی یک تمپلیت انجین بومی و انقلابی" شکل گرفت: Nova Template Engine.
Namespaceهای متعدد، یا کامپایل فایلها دارند، نوا با فلسفه "کارایی بیدرنگ و سادگی مطلق" طراحی شده است. هسته نوا آنقدر سبک و هوشمند است که تنها با "فراخوانی یک تابع واحد در بخش رندر پروژه" فعال میشود و بلافاصله کنترل تمامی پردازشهای نمایش را بر عهده میگیرد. این رویکرد، بار توسعهدهی (Development Overhead) را به صفر میرساند.
(Objects)، متدهای استاتیک (Static Methods)، ثابتها (Constants)، آرایههای Associative ساده و چندبعدی، و حتی منابع (Resources)" — به صورت ذاتی و بدون نیاز به تبدیل دستی، تشخیص داده و پردازش کند. این قابلیت، توسعهدهنده را از قید و بندهای معمول رها ساخته و جریان طبیعی کدنویسی را برای او ممکن میسازد.
(Debugging) آن است. این سیستم صرفاً یک گزارشدهنده خطا نیست، بلکه یک "دستیار هوشمند توسعه" است. هنگامی که خطایی رخ میدهد، نوا گزارشی فوقالعاده دقیق، خوانا و گرافیکی به مدیر سایت ارائه میدهد که شامل شماره خطای قالب، بلوک مربوطه، مقادیر متغیرها در آن Context و پیشنهادی برای رفع مشکل میباشد. این قابلیت، زمان عیبیابی (Debugging Time) را به صورت چشمگیری کاهش میدهد.
@ آغاز میشود. این انتخاب نه تنها بصری است، بلکه به کدهای قالب یک ساختار تمیز و متمایز از HTML و JavaScript میبخشد. دستورات نوا بسیار غنی و کاربردی هستند و نیازهای منطقی پیچیده را پوشش میدهند.
@math / @endmath: انجام عملیات ریاضی پیچیده مستقیماً در قالب.
@when / @endwhen: یک ساختار شرطی خلاصهشده و خوانا.
@switch / @case / @endswitch: ساختار Switch-Case کامل.
@do: اجرای یک تابع یا عملیات خاص.
@literal / @endliteral: محافظت از بلوکهای کد در برابر تفسیر توسط موتور.
@format: قالببندی رشتهها با استفاده از sprintf به شیوهای مدرن و قابل خواندن.
<!-- مثال: نمایش هوشمندانه یک بازه سالی -->
@format('Development Year: %s',
currentYear == initialYear ? currentYear : initialYear . ' - ' . currentYear
)
PHP زیر پردازش میشه:
<?php echo sprintf('Development Year: %s',
$currentYear == $initialYear ? $currentYear : $initialYear . ' - ' . $currentYear
); ?>
upper, lower, capitalize, date_format, number_format, json_encode, url_encode و دهها فیلتر کاربردی دیگر. این فیلترها زنجیرهای (Chainable) نیز هستند.
@: جداسازی کامل منطق نمایش از HTML خالص.
@if, @isset, @empty)، حلقهها (@for)، @switch و دستورات منحصربهفردی مانند @math و @format.