Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Draft Laravel Package

novay/draft

View on GitHub
Deep Wiki
Context7

🚀 Draft Starter Kit [Edisi Pribadi]

Latest Version on Packagist Total Downloads License

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

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:install Jalankan pemasangan untuk instalasi awal.

  • php artisan draft:publish {--force} Memublikasikan ulang views/assets dari package. Gunakan --force untuk 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:

  1. Middleware (bootstrap/app.php)

    ->withMiddleware(function (Middleware $middleware) {
        $middleware->web([
            \Novay\Draft\Http\Middleware\PurifyInput::class, 
            \Spatie\Honeypot\ProtectAgainstSpam::class,
        ]);
    })
    
  2. 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;
    }
    
  3. Route (routes/web.php)

    Route::impersonate();
    Route::passkeys();
    
  4. JavaScript (resources/js/app.js)

    import './passkeys.js';
    

    Lalu jalankan npm run build.

  5. 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"
    
  6. 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 di resources/js/.

⚠️ Catatan Penting

  • Untuk mengaktifkan Passkey, pastikan nilai APP_URL di file .env sesuai dengan domain aplikasi yang sedang berjalan. Ketidaksesuaian akan menyebabkan fitur ini tidak berfungsi.
  • Gunakan opsi --force dengan 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.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
terminal42/code-quality-tools
codifyo/ts-generator-bundle
andydefer/laravel-cluster
testo/fiber
mintobit/jobqueue
a4sex/maintenance-bundle
a4sex/entity-date-update
a4sex/client-identifier
a4sex/base-utilites
a4sex/key-value-storage
a4sex/micro-status
chilldev/dependency-injection-extra
datinglibre/datinglibre-app-api
biberltd/corebundle
bricre/symfony-bundle-test
biberltd/logbundle
dominium/http-adapter-bundle
dominium/google-analytics
a4sex/auto-clean-entity
christhompsontldr/laravel-inky