kominfogusit / laravel-helper
Reusable helper utilities for Laravel 12 and 13 applications.
Requires
- php: ^8.2
- blade-ui-kit/blade-icons: ^1.9
- illuminate/support: ^12.0|^13.0
- illuminate/view: ^12.0|^13.0
- mallardduck/blade-lucide-icons: ^1.26
- php-flasher/flasher-laravel: ^2.5
- php-flasher/flasher-notyf-laravel: ^2.5
- php-flasher/flasher-sweetalert-laravel: ^2.5
Requires (Dev)
- ext-intl: *
- orchestra/testbench: ^10.0|^11.0
- phpunit/phpunit: ^11.5
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
Instalasi
Install package dengan Composer:
composer require kominfogusit/laravel-helper
Publish konfigurasi package:
php artisan vendor:publish --tag=laravel-helper-config
Publish layout beserta CSS dan JavaScript default:
php artisan vendor:publish --tag=laravel-helper-core-ui
Jika aplikasi menggunakan integrasi Flasher, install aset Flasher:
php artisan flasher:install
Tambahkan CSS hasil publish ke resources/css/app.css:
@import './vendor/laravel-helper/default.css';
Install Alpine.js:
npm install alpinejs
Install Axios jika Table Filter menggunakan dependent select dengan dependencyMode ajax:
npm install axios
Aktifkan Alpine di resources/js/app.js:
import Alpine from 'alpinejs';
import './vendor/laravel-helper/admin-layout';
window.Alpine = Alpine;
Alpine.start();
Untuk dependent select AJAX, tambahkan Axios:
import axios from 'axios';
window.axios = axios;
window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
Layout
Gunakan layout hasil publish sebagai kerangka aplikasi admin:
@extends('layouts.admin.app')
@section('title', 'Users')
@section('page_heading', 'Users')
@section('page_subheading', 'Kelola akun pengguna.')
@section('content')
<x-laravel-helper::card>
<p>Konten halaman ditulis di sini.</p>
</x-laravel-helper::card>
@endsection
Lihat Panduan Layout untuk detail penggunaan layout.
Komponen
Form
| Komponen | Kegunaan | Dokumentasi |
|---|---|---|
x-laravel-helper::form.input | Field input teks dengan label, hint, error, attribute forwarding, dan fallback aksesibilitas. | Form Input |
x-laravel-helper::form.checkbox | Field checkbox dengan label, deskripsi, checked state, error, dan dukungan old(). | Form Checkbox |
x-laravel-helper::form.textarea | Field textarea dengan label, hint, error, rows, dan attribute forwarding. | Form Textarea |
x-laravel-helper::form.select | Field select dengan label, hint, error, placeholder, dan mode searchable. | Form Select |
UI
| Komponen | Kegunaan | Dokumentasi |
|---|---|---|
x-laravel-helper::button | Tombol atau link aksi dengan variant, loading state, ikon, dan mode icon-only. | Button |
x-laravel-helper::link | Anchor dengan variant, perilaku underline, ikon, dan disabled state. | Link |
x-laravel-helper::badge | Label kecil dengan variant, tone, ukuran, ikon, dan indikator dot. | Badge |
x-laravel-helper::card | Kontainer konten dengan header opsional, footer, variant status, dan wrapper tag. | Card |
x-laravel-helper::spinner | Indikator loading untuk form, tombol, dan area loading inline. | Spinner |
Dialog & Modal
| Komponen | Kegunaan | Dokumentasi |
|---|---|---|
x-laravel-helper::modal | Dialog berbasis Alpine dengan event open/close/toggle dan slots. | Modal |
Table
| Komponen | Kegunaan | Dokumentasi |
|---|---|---|
x-laravel-helper::table-filter | Toolbar query-string untuk pencarian cepat, modal filter, dan dependent select. Query database tetap dimiliki consumer. | Table Filter |
x-laravel-helper::table-index | Renderer tabel dengan header sorting, formatting, row action, rows-per-page, dan paginasi. Query sorting/filter/pagination tetap dimiliki consumer. | Table Index |
Utilitas
Package ini menyediakan utilitas berikut untuk digunakan oleh aplikasi:
Kominfogusit\LaravelHelper\Services\IndexQueryServiceKominfogusit\LaravelHelper\Services\ExceptionMessageResolverKominfogusit\LaravelHelper\Concerns\HasEnumOptionsKominfogusit\LaravelHelper\Concerns\PreservesIndexState
Lihat Utilitas untuk contoh penggunaan lengkap.