atk4/ui
Agile UI (atk4/ui) is a server-side rendered PHP UI framework with 50+ reusable components for building admin/back-office web apps fast. Connects to abstract data models (SQL/NoSQL/APIs), auto-adapts to schema changes, and supports interactive JS events and Vue.js extensibility.
Pros:
Text controls (#2043) aligns with Laravel’s security best practices (e.g., Blade’s {{ }} escaping).int type enforcement for View::setSource() (#2238) and JsCallback typecasts (#2225) reduce runtime errors, aligning with Laravel’s PHP 8.2+ type system.Cons:
Form\Control (#2271), renamed methods (setModel() → setEntity() #2239), and disabled bool defaults in onChange() (#2240) require refactoring existing Laravel-integrated atk4/ui code.View::content (#2073) and JsSse::$closeBeforeUnload (#2245) may break legacy integrations with Laravel’s event system or session handling.Route::apiResource('tabs')).atk4/ui’s teleported modals (#2257) within Blade templates to avoid DOM conflicts with Laravel’s Alpine.js or Livewire.Form::setEntity() (#2239) simplifies integration with Laravel Eloquent models:
$form = new Form();
$form->setEntity(User::find(1)); // Replaces deprecated setModel()
atk4/ui’s clearable dropdowns (#2209) for user role selection, validated via Laravel’s Authorize middleware.isEnabled property (#2232) for actions can sync with Laravel’s auth()->check() or Session::has().smallint/bigint (#2211) aligns with Laravel’s schema migrations, reducing custom typecasting.atk4/ui’s new setEntity() (#2239) or abstract Form\Control (#2271) may require rewriting form logic. Mitigate with a migration script to auto-update method calls.atk4/ui’s client-side state (e.g., Grid selections) may conflict with Laravel’s server-side sessions. Use Laravel’s cache (e.g., Cache::put('grid_selection', $data)) for sync.atk4/ui for output (e.g., Artisan commands with interactive prompts).atk4/ui wrappers (e.g., LaravelForm extends atk4\Form) to isolate changes.atk4/ui 6.0.0 features during rollout.atk4/ui components (e.g., custom form controls, middleware) use deprecated methods like setModel() or View::content? Prioritize refactoring these.auth()->user()) sync with atk4/ui’s client-side state? Evaluate Sanctum tokens vs. server-side session storage.atk4/ui 6.0.0’s modal teleporting (#2257) and async cleanup (#2244) against Laravel Livewire/Inertia.js for similar use cases (e.g., CRUD operations).atk4/ui plugins (e.g., for Nova, Scout) planned to offset custom integration effort? Check the atk4/ui GitHub for roadmaps.Form\Control (#2271) and HTML escaping (#2267) simplify migrating insecure jQuery-based forms to atk4/ui.atk4/ui in Laravel’s CLI tools (e.g., php artisan ui:make with interactive prompts).atk4/ui for WebSocket-driven updates.atk4/ui’s client-side rendering conflicts with Laravel Vapor/SSG (e.g., Markdown-based sites).atk4/ui’s event system with Livewire’s reactivity.composer.json to require atk4/ui:^6.0 and configure Vite to bundle Fomantic UI 2.10.0-beta:
// vite.config.js
import { defineConfig } from 'vite';
export default defineConfig({
build: {
rollupOptions: {
external: ['fomantic-ui', 'atk4-ui'], // Exclude from Laravel’s build
},
},
});
setModel() with setEntity() in Laravel-integrated forms:
// Before
$form->setModel(User::find(1));
// After
$form->setEntity(User::find(1));
atk4/ui’s client state with server sessions:
// app/Http/Middleware/SyncAtk4State.php
public function handle($request, Closure $next) {
session(['atk4_grid_selection' => $request->input('grid_selection')]);
return $next($request);
}
atk4\Form\Control for Laravel-specific logic (e.g., validation rulesHow can I help you explore Laravel packages today?