Lattice؛ رابط کاربری لاراول رو با PHP بنویس
خلاصهٔ کاملتر
تو این مقاله معرفی شده که Lattice یه فریمورک رابط کاربریِ سرورمحور (server-driven) برای لاراوله. ایدهاش اینه که سرور تصمیم بگیره یه صفحه «چی هست» و کلاینت فقط یه کار داشته باشه: رندر کردنش. یعنی بهجای اینکه سمت فرانتاند صفحه رو بسازی، کل ساختار صفحه از PHP میاد.
هر صفحه یه کلاس PHPه که یه درخت از تعریفِ کامپوننتها میسازه. Lattice این درخت رو به یه payload تایپدار سریالایز میکنه، روی Inertia میفرسته، و یه کامپوننت React هر گره رو با یه رجیستریِ کامپوننتها تطبیق میده و میکشه. خودِ درخت هم با متدهای روان PHP مثل Stack و Grid و Heading و Card چیده میشه، نه با JSX.
صفحهها با یه اتریبیوت مثل #[AsPage] خودکار روت میشن و لازم نیست دستی روت تعریف کنی. فرمها یه کلاس جدان که فیلدهاشون رو با قوانین استاندارد ولیدیشن لاراول چک میکنن؛ با افزودن Precognition هم میتونی اعتبارسنجی زنده موقع تایپ داشته باشی.
مثلاً چیدن یه فرم روی صفحه فقط یه فراخوانی روانه؛ میتونی متد HTTP، برچسب دکمهٔ ارسال و دادههای اولیه رو پشتسرهم ست کنی و با precognitive اعتبارسنجی زنده رو روشن کنی:
Form::use(ProfileForm::class)
->method(HttpMethod::Patch)
->submitLabel('Save changes')
->precognitive(500)
->fill([
'name' => $user->name,
'email' => $user->email,
]);جدولها از EloquentTableDefinition ارث میبرن: ستونها رو تعریف میکنی و یه query builder برمیگردونی، بعد مرتبسازی، فیلتر و صفحهبندی بر اساس ستونهایی که sortable() یا filterable() علامت زدی خودکار انجام میشه. اکشنها هم سمت سرور اجرا میشن و بهجای دستکاری مستقیم UI یه سری «افکت» برمیگردونن — مثل توست، ریدایرکت یا رفرشِ کامپوننت — که کلاینت اجراشون کنه.
نکات کلیدی:
- Lattice رابط کاربری لاراول رو سمت سرور و با PHP توصیف میکنه و خروجیاش کامپوننتهای واقعی React روی Inertia هست.
- صفحهها، فرمها و جدولها هرکدوم یه کلاس PHP هستن؛ روتشدن خودکار، ولیدیشن لاراول و اتصال به Eloquent توش آمادهست.
- اکشنهای سمت سرور بهجای کد فرانت، «افکت» (توست، ریدایرکت، رفرش) برمیگردونن.




