Pollora: وردپرس داخل لاراول
خلاصهٔ کاملتر
طبق مطلب Paul Redmond تو Laravel News، Pollora یه فریمورک هست که وردپرس رو داخل یه اپلیکیشن لاراول اجرا میکنه. اینجا اول لاراول بوت میشه و درخواستهای سمت سایت رو با روتر، کنترلرها و Blade جواب میده. در عوض پنل مدیریت وردپرس در /cms/wp-admin/، دیتابیس و پلاگینها مثل هر سایت وردپرسی دیگه کار میکنن.
روش کارش اینه که Composer هستهٔ وردپرس رو تو public/cms نصب میکنه و Pollora موقع بوت لاراول، با کانفیگ و اتصال دیتابیس خود لاراول، وردپرس رو لود میکنه. وردپرس هنوز درخواست رو پارس میکنه، پس conditional tagها (یعنی تابعهایی مثل is_single() که میگن الان کدوم نوع صفحه باز شده) درست کار میکنن، ولی جواب رو لاراول رندر میکنه. هزینهش اینه که هر درخواست، وردپرس و پلاگینهاش رو هم بوت میکنه و آپدیت هستهٔ وردپرس هم از Composer انجام میشه نه از داشبورد.
برای مسیریابی، Pollora دو متد Route::wp() و Route::wpMatch() به روتر اضافه کرده که درخواست رو با یه conditional tag مقایسه میکنن. میشه اسم کامل تابع رو داد یا یه اسم کوتاه مثل page:
Route::wp('single', function () {
return view('post');
});
Route::wpMatch(['GET', 'POST'], 'page', ['contact', 'request-a-quote'], [FormController::class, 'index']);لازم هم نیست برای هر صفحه روت بنویسی. اگه هیچ روتی نخوره، Pollora سلسلهمراتب قالب وردپرس (template hierarchy) رو دنبال میکنه و ویوی Blade مناسب رو رندر میکنه. مثلاً صفحهٔ About اگه page-about.blade.php باشه از اون استفاده میکنه و اگه نباشه میره سراغ page.blade.php.
به جای صدا زدن register_post_type() تو functions.php، پستتایپ رو به شکل یه کلاس با attributeهای PHP تعریف میکنی و Pollora خودش پیداش میکنه و slug و لیبلها رو از اسم کلاس میسازه. اکشنها و فیلترها هم همینطوریان، مثلاً #[Action('init', priority: 10)] یا #[Filter('the_content', priority: 10)] روی یه متد، و یه متد میتونه به چند هوک گوش بده. دستورهای Artisan مثل pollora:make:post-type هم این کلاسها رو میسازن.
بلاکهای Gutenberg با pollora:make:block ساخته میشن و با Blade رندر میشن، پیشنمایش ادیتور هم از همون قالبه و assetها با Vite بیلد میشن. کتابخونهٔ رسانه هم میتونه روی هر دیسک لاراول مثل S3 یا R2 باشه و پلاگینهایی مثل ACF و WooCommerce بدون تغییر کار میکنن. دادههای وردپرس هم با Colt (یه فورک از Corcel) به شکل مدل Eloquent در دسترسه. خود Pollora تو مقایسهش قبول داره که پروژهٔ جوونیه و Acorn و Sage خیلی بیشتر نصب دارن.
نکات کلیدی:
- Pollora اول لاراول رو بوت میکنه و وردپرس رو داخلش اجرا میکنه؛ پنل مدیریت در /cms/wp-admin/ میمونه.
- هر درخواست وب، وردپرس و همهٔ پلاگینهاش رو هم بوت میکنه.
- Route::wp() و Route::wpMatch() روی conditional tagهای وردپرس روت میکنن.
- پستتایپها، اکشنها و فیلترها با attributeهای PHP مثل #[PostType] و #[Filter] تعریف میشن.
- رسانهها روی هر دیسک لاراول مثل S3 و R2 ذخیره میشن.
- لایسنس MIT و رایگانه؛ نصب با composer create-project pollora/pollora.




