Lattice - це server-driven UI фреймворк для Laravel, який дозволяє описувати інтерфейс повністю на PHP і рендерити його як справжні React-компоненти через Inertia. Підхід робить сервер єдиним джерелом істини для структури екрану, залишаючи клієнту одне завдання - рендеринг.
Основні можливості
Сторінки описуються як PHP-класи з атрибутом #[AsPage], який автоматично реєструє маршрут. Дерево компонентів будується fluent-синтаксисом (Stack, Grid, Heading, Card) замість JSX. Параметри маршруту резолвляться безпосередньо в сигнатурі render() через route-model binding Laravel, а метод authorize() контролює доступ до сторінки.
Форми базуються на класах FormDefinition із декларацією полів та стандартною валідацією Laravel. Lattice рендерить React-інпути, валідує запит за вашими правилами і виконує handle() при успішному сабміті. Підтримується live-валідація через Laravel Precognition з налаштуванням .precognitive(500).
Таблиці розширюють EloquentTableDefinition - ви оголошуєте колонки, повертаєте query builder, а сортування, фільтрацію та пагінацію фреймворк обробляє автоматично на основі методів sortable() та filterable().
Дії (actions) виконуються на сервері та повертають ActionResult з інструкціями для клієнта - toast-повідомлення, редирект або оновлення компонента. Це дозволяє уникнути прямого керування DOM на клієнті та тримати логіку на сервері.
Документація, інструкція з установки та довідник компонентів доступні на latticephp.com, вихідний код - на GitHub.