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!
Installer via Terminal
Tinggal jalanin php artisan draft:install, lalu bisa dipilih fitur apa saja yang akan dipasang, atau langsung pasang semua rekomendasi secara otomatis.
Keamanan Bawaan
stevebauman/purifyspatie/laravel-honeypotspatie/laravel-passkeysyadahan/laravel-authentication-logbjeavons/zxcvbn-phpUI & Fitur Admin
lab404/laravel-impersonaterappasoft/laravel-livewire-tablesUtilitas Inti
settings()novay/bunny-secretsnovay/logifyRandomIds)tglIndonesia, rupiah, greetings, me)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:
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.
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"
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 />
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
Package ini menyediakan API untuk menyimpan dan mengambil pengaturan aplikasi yang tersimpan di database dengan dukungan caching.
| 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. |
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');
Trait ini akan:
use Illuminate\Database\Eloquent\Model;
use App\Traits\RandomIds;
class Invoice extends Model
{
use RandomIds;
}
$invoice = Invoice::create([
'customer_id' => 123,
'amount' => 50000,
]);
echo $invoice->id;
// Contoh output: 48291537
Draft dirancang agar mudah dikustomisasi:
config/.resources/views/.passkeys.js) bisa diedit di resources/js/.APP_URL di file .env sesuai dengan domain aplikasi yang sedang berjalan. Ketidaksesuaian akan menyebabkan fitur ini tidak berfungsi.--force dengan hati-hati saat mempublikasikan ulang file agar tidak menimpa perubahan lokal Anda. Jadi, pastikan Anda sudah melakukan backup jika ada perubahan penting.Package ini dirilis di bawah Lisensi MIT.
How can I help you explore Laravel packages today?