Download the PHP package krisnaxyoga/krisna-crud-gen without Composer
On this page you can find all versions of the php package krisnaxyoga/krisna-crud-gen. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package krisna-crud-gen
Krisna CRUD Gen
Single Source Schema → REST API + Admin UI otomatis untuk Laravel. Definisikan 1 file schema PHP, dapatkan REST API lengkap (Sanctum), validasi, dan (opsional) Admin Panel Inertia — tanpa menulis controller, route, atau tabel manual.
Fitur
- 🎯 Single Source Schema — 1 class mendefinisikan fields, validasi, UI props, & API.
- ⚡ REST API otomatis —
index/show/store/update/destroy+ endpoint schema, per slug. - 🔒 Aman by design — search/sort hanya kolom yang dideklarasikan; validasi & mass-assignment dibatasi schema.
- 🧩 Type-safe & fluent — PHP 8 typed properties, enum, attribute, fluent chaining (autocomplete penuh).
- 🪶 Ringan — hanya bergantung pada komponen
illuminate/*. - 🚀 Safe-Eject — ubah schema menjadi Controller + FormRequest fisik kapan pun butuh custom logic ekstrem.
- 🎛️ Admin Panel opsional — default API-only. Aktifkan saat install dan pilih tampilannya:
blade(server-side, tanpa build) atauvue/react/svelte(Inertia). - 🌼 Admin Panel ber-DaisyUI — komponen lengkap untuk keempat tampilan, CSS-nya sudah dikompilasi & ikut dibundel, jadi tidak wajib memasang Tailwind sendiri.
- 🛠️ Generator —
php artisan krisnaxyoga:crud Productuntuk scaffold schema (+ model & migration) dalam satu perintah.
Instalasi
Via Packagist (jika sudah dipublish)
Via VCS (langsung dari GitHub, tanpa Packagist)
Tambahkan di composer.json aplikasi:
Instalasi cepat
Interaktif, dua pertanyaan:
Jawab no → tetap seperti semula: hanya REST API, tanpa route admin, tanpa aset.
Non-interaktif:
Perintah ini men-set CRUD_ENGINE_FRONTEND di .env, mem-publish aset yang sesuai (termasuk CSS DaisyUI untuk semua mode Admin Panel), dan menampilkan langkah manual yang tersisa per mode.
Prasyarat REST API (Sanctum)
Tambahkan trait Laravel\Sanctum\HasApiTokens ke model User.
Publish konfigurasi (opsional)
Cara membuat CRUD
Cara 1 — Generator (krisnaxyoga:crud) ⚡ direkomendasikan
Scaffold schema (opsional + model & migration) dalam satu perintah:
Argumen & opsi:
| Bagian | Fungsi |
|---|---|
Product |
Nama resource (StudlyCase). Menghasilkan ProductResource & slug products. |
--fields="col:type,..." |
Definisi field. Tanpa ini → satu field teks name. |
--model |
Sekaligus buat model Eloquent App\Models\Product. |
--migration |
Buat model + migration. |
--force |
Timpa schema yang sudah ada. |
Menghasilkan app/CrudSchemas/ProductResource.php lengkap dengan field + import sesuai tipe. Kolom name otomatis searchable()->sortable().
Tipe --fields yang didukung: string, text, textarea, number, integer, decimal, email, password, boolean, select, date, datetime, file, image, richtext, belongsTo.
Langkah setelah generate:
Alias lama
crud:makemasih berfungsi.
Cara 2 — Manual
1. Buat model + migration seperti biasa (php artisan make:model Product -m).
2. Buat schema di app/CrudSchemas/ProductResource.php:
3. Selesai. REST API langsung aktif (auto-discovery dari app/CrudSchemas):
| Method | Endpoint |
|---|---|
GET |
/api/crud/products/schema |
GET |
/api/crud/products — ?search= ?sort=-price ?per_page= ?page= |
POST |
/api/crud/products |
GET |
/api/crud/products/{id} |
PUT/PATCH |
/api/crud/products/{id} |
DELETE |
/api/crud/products/{id} |
Katalog Field
| Class | Tipe | Validasi dasar |
|---|---|---|
TextField |
text | string |
TextareaField |
textarea | string |
NumberField |
number | numeric |
EmailField |
email |
|
PasswordField |
password | string, min:8 |
BooleanField |
boolean | boolean |
SelectField |
select | string / array |
DateField |
date / datetime | date |
FileUploadField |
file | file / image |
RichTextField |
richtext | string (HTML) |
BelongsToField |
belongsTo | exists:{tabel},{kolom} |
Contoh fluent
Safe-Eject
Ketika butuh custom logic ekstrem, "lulus"-kan resource dari engine menjadi file fisik mandiri:
Menghasilkan:
app/Http/Controllers/Crud/ProductController.php— CRUD lengkap (search/sort/paginate inline)app/Http/Requests/Crud/ProductRequest.php— rules create/update dari schema (termasukRule::unique()->ignore($id))routes/crud/products.php
Lalu require __DIR__ . '/crud/products.php'; di routes/api.php dan hapus schema-nya.
Konfigurasi
config/crud-engine.php:
Admin Panel (opsional)
Package ini API-first. Admin Panel sepenuhnya opsional: default api, dan route admin hanya didaftarkan bila crud-engine.frontend bukan api. Tidak memilih Admin Panel = tidak ada route admin, tidak ada aset, tidak ada beban.
Bila dipilih, keempat tampilan memakai DaisyUI dengan komponen yang setara — bukan salah satu saja.
| Mode | Yang aktif | Build tool | Komponen dibundel |
|---|---|---|---|
api (default) |
Hanya REST API /api/crud |
— | — |
blade |
+ Admin Panel server-side | ❌ tanpa npm | Blade views |
vue |
+ Admin Panel Inertia | ✅ Vite | 12 komponen .vue |
react |
+ Admin Panel Inertia | ✅ Vite | 12 komponen .jsx |
svelte |
+ Admin Panel Inertia | ✅ Vite | 12 komponen .svelte |
Tiap mode Inertia mendapat: Layouts/AdminLayout, Pages/CrudEngine/{Dashboard,Index,Form}, dan Components/Fields/* (renderer + 7 field: input, textarea, select, toggle, date, file upload, rich text).
CSS: tidak perlu setup Tailwind
crud:install mem-publish public/vendor/crud-engine/admin.css — hasil kompilasi Tailwind v4 + DaisyUI v5 yang ikut terdistribusi bersama package. Panel langsung tampil benar, offline, tanpa npm install tailwindcss.
Sudah punya Tailwind + DaisyUI sendiri? Hapus baris <link> di resources/views/app.blade.php dan pastikan resources/js/** ikut dipindai konfigurasi Tailwind-mu.
Catatan: CSS bundel hanya memuat kelas yang dipakai komponen bawaan. Kalau kamu menambah kelas DaisyUI baru di komponen hasil publish, kelas itu perlu build Tailwind milikmu sendiri.
Tema
Tema yang ikut dibundel: light (default), dark, corporate, business, emerald, night, nord, dracula. Dipasang sebagai <html data-theme="…">. Tema di luar daftar itu perlu build CSS sendiri (lihat Build ulang CSS).
Mode api
Tidak ada UI. Konsumsi kontrak GET /api/crud/{slug}/schema untuk membangun UI apa pun sendiri.
Mode blade
Dirender penuh di server — tanpa npm/build sama sekali. Buka /admin. Kustomisasi: php artisan vendor:publish --tag=crud-engine-views.
Mode vue / react / svelte
Mem-publish komponen ke resources/js/**, membuat entry Vite yang sesuai (app.js untuk Vue/Svelte, app.jsx untuk React) dan resources/views/app.blade.php. Lengkapi langkah yang ditampilkan command:
| Mode | Dependensi npm |
|---|---|
vue |
vue @inertiajs/vue3 @vitejs/plugin-vue |
react |
react react-dom @inertiajs/react @vitejs/plugin-react |
svelte |
svelte @inertiajs/svelte @sveltejs/vite-plugin-svelte |
Lalu daftarkan plugin di vite.config.js, jalankan php artisan inertia:middleware, dan npm run build.
Komponen Svelte memakai sintaks Svelte 5 (runes). Untuk Svelte 4, sesuaikan
$props()/$derived— tiap komponen punya catatannya.
Mem-publish ulang komponen tanpa crud:install:
Route admin:
/admin(dashboard),/admin/{slug}(tabel),/admin/{slug}/create,/admin/{slug}/{id}/edit. Halaman login spesifik aplikasi — sediakan sendiri.
Build ulang CSS (kontributor)
Hanya perlu bila mengubah template package atau menambah tema:
Requirements
- PHP 8.2+
- Laravel 10 / 11 / 12 / 13
laravel/sanctum(untuk REST API terproteksi Bearer)
Testing
CI (GitHub Actions) menjalankan suite PHP pada 8.2, 8.3, dan 8.4, plus job terpisah yang mengompilasi seluruh komponen Admin Panel dan memastikan resources/dist/admin.css tidak basi terhadap template.
Lisensi
MIT © krisnaxyoga
All versions of krisna-crud-gen with dependencies
illuminate/support Version ^10.0|^11.0|^12.0|^13.0
illuminate/database Version ^10.0|^11.0|^12.0|^13.0
illuminate/http Version ^10.0|^11.0|^12.0|^13.0