php frame make:view products/index
This creates app/views/products/index.view.php
// In controller
view('products/index', [
'title' => 'Products',
'products' => $products
]);
Create a component at app/views/components/alert.view.php:
<div class="alert alert-{{ $type ?? 'info' }}" role="alert">
@if(isset($icon))
<i class="bi bi-{{ $icon }}"></i>
@endif
{{ $message ?? $slot }}
</div>
Use it in views:
<!-- With attributes -->
<x-alert type="success" message="User created!" icon="check-circle" />
<!-- With slot content -->
<x-alert type="warning">
<strong>Warning!</strong> This action cannot be undone.
</x-alert>