novay/draft
最新稳定版本:0.0.1
Composer 安装命令:
composer require novay/draft
包简介
A starter kit for Livewire projects.
README 文档
README
Draft ini adalah paket siap pakai untuk Laravel, dirancang untuk mempercepat proses pembuatan proyek baru. Dengan satu perintah interaktif, Draft akan langsung memasang dan mengonfigurasi package-package penting yang umumnya selalu terpakai di hampir setiap proyek Laravel yang saya mulai. Ini adalah solusi untuk menyingkat waktu setting yang sering berulang!
📑 Daftar Isi
- Fitur Utama
- Cara Pasang
- Cara Pakai
- Publikasi File
- Settings API
- Traits
- Kustomisasi
- Catatan Penting
- Lisensi
✨ Fitur Utama
-
Installer via Terminal
Tinggal jalaninphp artisan draft:install, lalu bisa dipilih fitur apa saja yang akan dipasang, atau langsung pasang semua rekomendasi secara otomatis. -
Keamanan Bawaan
- Proteksi XSS dengan
stevebauman/purify - Proteksi SPAM dengan
spatie/laravel-honeypot - Login tanpa password dengan
spatie/laravel-passkeys - Catat riwayat login dengan
yadahan/laravel-authentication-log - Standarisasi sandi dengan
bjeavons/zxcvbn-php
- Proteksi XSS dengan
-
UI & Fitur Admin
- Login sebagai user lain dengan
lab404/laravel-impersonate - Tabel data interaktif dengan
rappasoft/laravel-livewire-tables
- Login sebagai user lain dengan
-
Utilitas Inti
- Sistem pengaturan aplikasi dengan helper
settings() - Manajemen File di BunnyCDN
novay/bunny-secrets - Catatan Aktivitas (Logging) dengan
novay/logify - Trait untuk ID unik (
RandomIds) - Helper tambahan (
tglIndonesia,rupiah,greetings,me)
- Sistem pengaturan aplikasi dengan helper
⚡ Cara Pasang
Tambahkan package ini ke proyek Laravel:
composer require novay/draft
Lakukan ini:
php artisan draft:install
Pilih mode instalasi: otomatis (semua fitur) atau manual (pilih satu per satu).
Nanti proses ini akan otomatis:
- Menginstal dependensi Composer
- Memublikasikan file config, view, dan aset
- Memberikan instruksi tambahan jika ada konfigurasi manual
🛠 Cara Pakai
Perintah Artisan
-
php artisan draft:installJalankan pemasangan untuk instalasi awal. -
php artisan draft:publish {--force}Memublikasikan ulang views/assets dari package. Gunakan--forceuntuk menimpa file.
Helper Functions
Draft menyediakan beberapa helper global:
settings('app_name', 'Default Name'); // Ambil setting aplikasi tglIndonesia('2025-08-22'); // Format tanggal Indonesia rupiah(15000); // Format angka ke Rupiah me(); // Ambil user yang sedang login greetings(); // "Selamat Pagi / Siang / Malam"
Konfigurasi Manual (Jika Diperlukan)
Beberapa fitur mungkin memerlukan sedikit konfigurasi di file proyek:
-
Middleware (
bootstrap/app.php)->withMiddleware(function (Middleware $middleware) { $middleware->web([ \Novay\Draft\Http\Middleware\PurifyInput::class, \Spatie\Honeypot\ProtectAgainstSpam::class, ]); })
-
Model User (
app/Models/User.php)use Spatie\LaravelPasskeys\Models\Concerns\HasPasskeys; use Spatie\LaravelPasskeys\Models\Concerns\InteractsWithPasskeys; use Lab404\Impersonate\Models\Impersonate; use Yadahan\AuthenticationLog\AuthenticationLogable; class User extends Authenticatable implements HasPasskeys { use InteractsWithPasskeys, Impersonate, AuthenticationLogable; }
-
Route (
routes/web.php)Route::impersonate(); Route::passkeys();
-
JavaScript (
resources/js/app.js)import './passkeys.js';
Lalu jalankan
npm run build. -
Environment (
.env)MAIL_MAILER=resend RESEND_API_KEY=re_123456789 SECRET_URI="https://btekno.app" SECRET_KEY="your-secret-key" BUNNY_SECRET_FILE="bunny" BUNNY_SECRET_KEY="bunnyPass"
-
Livewire Component
<livewire:logify::log-viewer /> <x-authenticate-passkey /> <livewire:passkeys />
📦 Publikasi File
Gunakan php artisan draft:publish untuk memublikasikan file.
Anda juga bisa memilih kategori dengan tag:
php artisan vendor:publish --tag=draft-views # Views Livewire php artisan vendor:publish --tag=draft-views-volt # Views Volt php artisan vendor:publish --tag=draft-assets # Assets JS/CSS php artisan vendor:publish --tag=draft-config # Config php artisan vendor:publish --tag=draft-migrations # Migrations
⚙️ Settings API
Package ini menyediakan API untuk menyimpan dan mengambil pengaturan aplikasi yang tersimpan di database dengan dukungan caching.
Metode Utama
| Metode | Deskripsi |
|---|---|
all($fresh = false) |
Mengambil semua settings (dengan cache). |
get($key, $default = null) |
Mengambil 1 setting dengan fallback. |
set($key, $value) |
Menyimpan atau memperbarui setting. |
has($key) |
Mengecek apakah setting tersedia. |
remove($key) |
Menghapus setting tertentu. |
flushCache() |
Membersihkan cache settings. |
group($groupName) |
Mengatur namespace/group untuk settings. |
Contoh Penggunaan
use Novay\Draft\Facades\Setting; // Simpan setting Setting::set('app_name', 'My Application'); // Ambil setting $name = Setting::get('app_name', 'Default App'); // Hapus setting Setting::remove('app_name'); // Ganti group Setting::group('custom')->set('theme', 'dark');
🧩 Traits
RandomIds
Trait ini akan:
- Menonaktifkan auto-increment bawaan Laravel.
- Menghasilkan ID numerik acak 8 digit unik sebelum setiap model disimpan.
- Menjamin keunikan dengan pengecekan ke database agar tidak ada duplikasi.
Contoh Penggunaan
use Illuminate\Database\Eloquent\Model; use App\Traits\RandomIds; class Invoice extends Model { use RandomIds; }
Hasil
$invoice = Invoice::create([ 'customer_id' => 123, 'amount' => 50000, ]); echo $invoice->id; // Contoh output: 48291537
🎨 Kustomisasi
Draft dirancang agar mudah dikustomisasi:
- Config: Semua file konfigurasi akan tersedia di folder
config/. - Views: Setelah dipublikasikan, bebas edit di
resources/views/. - Assets: File JS (misalnya
passkeys.js) bisa diedit diresources/js/.
⚠️ Catatan Penting
- Untuk mengaktifkan Passkey, pastikan nilai
APP_URLdi file.envsesuai dengan domain aplikasi yang sedang berjalan. Ketidaksesuaian akan menyebabkan fitur ini tidak berfungsi. - Gunakan opsi
--forcedengan hati-hati saat mempublikasikan ulang file agar tidak menimpa perubahan lokal Anda. Jadi, pastikan Anda sudah melakukan backup jika ada perubahan penting.
📄 Lisensi
Package ini dirilis di bawah Lisensi MIT.
统计信息
- 总下载量: 3
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 2
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-08-22