Laravel 13 Rilis dengan PHP Attributes, AI dan Vector Search
Laravel 13 resmi dirilis pada 17 Maret 2026 dengan fokus utama meminimalkan breaking changes, dengan tetap menghadirkan berbagai kapabilitas baru yang substansial. Pembaruan ini mencakup ketersediaan PHP attributes di lebih dari 15 lokasi framework, stabilitas first-party AI SDK, hingga fitur native vector search menggunakan pgvector. Rilis ini semakin memperkuat posisi Laravel sebagai framework PHP modern yang siap menyambut era AI-powered development.
Key Takeaways:
- Laravel 13 dirilis pada 17 Maret 2026 dengan PHP 8.3 sebagai prasyarat minimum, yang sekaligus menghentikan dukungan untuk PHP 8.2.
- PHP attributes kini tersedia di lebih dari 15 lokasi (seperti model, jobs, controllers, dan console commands); fitur ini sepenuhnya opsional dan bersifat backward-compatible.
- Laravel AI SDK telah mencapai versi stabil 1.0, menyediakan API terpadu untuk text generation, embeddings, agents, image, serta audio.
- Native vector/semantic search menggunakan pgvector memungkinkan pencarian berbasis makna secara langsung melalui query builder.
- Upgrade dari Laravel 12 dapat dilakukan dengan sangat mulus—terutama karena agen AI dari Laravel Boost kini menyediakan alur pembaruan otomatis.
Rilis “Membosankan” dalam Cara yang Tepat
Tim Laravel sendiri menegaskan bahwa fokus utama pada siklus rilis kali ini adalah meminimalkan breaking changes. Alih-alih merombak arsitektur secara drastis, mereka memilih untuk terus menghadirkan peningkatan quality of life (kenyamanan pengembang) secara konsisten sepanjang tahun, tanpa merusak aplikasi yang sudah beroperasi.
Bagi developer yang masih menyimpan trauma terhadap upgrade berskala besar seperti dari Laravel 4 ke 5, atau 5 ke 6, ini tentu menjadi kabar baik. Laravel 13 merupakan kelanjutan dari filosofi “membosankan itu baik” (boring is good) yang telah diinisiasi sejak era Laravel 12. Stabilitas ini juga memberikan dampak positif bagi ekosistem secara menyeluruh, di mana para package maintainer dan tim DevOps kini dapat bekerja dengan jauh lebih tenang.
Namun, jangan salah sangka: meskipun proses upgrade-nya tergolong ringan, inovasi fitur baru yang ditawarkan sama sekali tidak bisa diremehkan.
Apa yang Baru di Laravel 13
PHP 8.3 Sekarang Menjadi Standar Minimum
Laravel 13 secara resmi menghentikan dukungan untuk PHP 8.2. Versi minimum yang disyaratkan saat ini adalah PHP 8.3, dengan rentang dukungan maksimal hingga PHP 8.5. Mengingat PHP 8.3 telah cukup lama beredar di pasaran, penyesuaian ini seharusnya tidak memicu kendala berarti bagi mayoritas tim pengembang. Kendati demikian, jika server production Anda masih menggunakan PHP 8.1 atau 8.2, inilah saatnya upgrade ke PHP 8.3.
Rilis Laravel 13 juga manandai berakhirnya dukungan Laravel 11 yang sudah tidak lagi menerima pembaruan keamanan (security fixes) terhitung sejak Maret 2026. Jika aplikasi Anda masih menggunakan Laravel 11, tidak ada lagi alasan untuk menunda proses upgrade.
Ekspansi PHP Attributes ke Berbagai Aspek
Pembaruan ini merupakan lonjakan developer experience terbesar di dalam Laravel 13. Framework ini sekarang mendayagunakan PHP attributes di lebih dari 15 lokasi yang berbeda—seluruhnya dihadirkan sebagai opsi dan tetap backward-compatible. Basis kode lama Anda dipastikan akan tetap berfungsi; Anda sekadar diberikan alternatif penulisan yang lebih bersih dan elegan untuk mencapai hasil yang identik.
Eloquent Models kini dapat merangkul attributes untuk mengonfigurasi tabel, penentuan fillable fields, maupun hidden fields:
#[Table('users', key: 'user_id', keyType: 'string', incrementing: false)]
#[Hidden(['password'])]
#[Fillable(['name', 'email'])]
class User extends Model {}
Queue Jobs turut mendulang manfaat berupa deklarasi rate limiting dan overlap prevention yang dapat disematkan langsung di level class:
#[Tries(5)]
#[MaxExceptions(3)]
#[WithoutOverlapping(key: 'user-{userId}')]
class ProcessPayment implements ShouldQueue
{
// ...
}
Pada Controllers, penerapan middleware maupun kebijakan otorisasi per metode kini bisa disederhanakan melalui attributes:
class FlightController extends Controller
{
#[Middleware(LogRequests::class)]
#[Authorize('view', 'flight')]
public function show(Flight $flight)
{
// ...
}
}
Bahkan Artisan Commands memungkinkan Anda untuk mendefinisikan jadwal operasi (schedule) langsung di dalam pendefinisian class:
#[Schedule('daily')]
class SendDailyReport extends Command
{
// ...
}
Perlu ditegaskan bahwa tidak ada fitur lama yang dihilangkan. Pemakaian array $casts, pendefinisian method boot(), hingga pengaturan rute jadwal di Kernel masih beroperasi sepenuhnya. Attributes sejatinya hadir sebagai alternatif mutakhir yang mendekatkan konfigurasi dengan blok kode yang relevan, memangkas boilerplate, dan menjadikan struktur kode Anda lebih mudah dibaca sekilas (scannable).
Satu hal yang menarik, dengan adopsi PHP 8.5, Anda bahkan diizinkan menyisipkan Closure secara langsung di dalam attributes—sebuah terobosan yang membuka ruang untuk penulisan middleware inline agar terasa lebih ekspresif.
Laravel AI SDK — Memasuki Fase Stabil di Versi 1.0
Bersamaan dengan peluncuran Laravel 13, package laravel/ai resmi menapaki tonggak versi stabil 1.0. Modul ini adalah first-party SDK yang menyajikan sebuah API terpadu untuk berinteraksi dengan beraneka ragam penyedia layanan AI unggulan: OpenAI, Anthropic, dan Gemini—semuanya dikonfigurasi agar siap pakai (out of the box).
Deretan kapabilitas yang disediakan sangat komprehensif, mencakup pembuatan teks (text generation), image generation, audio synthesis, embeddings, dan bahkan sistem agen pintar (agents) yang didukung oleh konfigurasi tools:
use LaravelAIFacadesAI;
// Pembuatan teks (Text generation)
$response = AI::text('Write a product description for ' . $product->name);
// Menggunakan provider secara spesifik
$response = AI::provider('anthropic')->text('Summarize this document...');
// Embeddings untuk kebutuhan pencarian semantik
$vector = AI::embeddings('Laravel is a PHP framework');
// Menjalankan agen dengan dukungan tools
$result = AI::agent()
->tools([new SearchTool(), new CalculateTool()])
->run('Find the best product under $50 and calculate shipping');
Fungsionalitas agen ini menjadi primadona yang paling menarik perhatian. Anda cukup mendefinisikan class fungsional (tools), mendelegasikannya kepada agen, lalu agen tersebutlah yang akan merumuskan sendiri secara dinamis kapan perlu mengeksekusi tools tersebut. Orketrasi semacam ini umumnya menuntut kehadiran kerangka eksternal layaknya LangChain; kini kapabilitas serupa telah terintegrasi dengan mulus ke dalam aplikasi Laravel Anda hanya berbekal satu baris kode.
Lebih jauh, SDK ini memfasilitasi kebutuhan multimedia melalui dukungan pembuatan gambar dan sintesis audio:
use LaravelAiImage;
$image = Image::of('A donut sitting on the kitchen counter')->generate();
use LaravelAiAudio;
$audio = Audio::of('I love coding with Laravel.')->generate();
Sebagai informasi, secara teknis pilar-pilar AI SDK ini sudah eksis sebelum rilisnya Laravel 13. Akan tetapi, kini statusnya telah resmi dinyatakan stabil dan diakui sebagai nyawa integral di dalam ekosistem.
Semantic & Vector Search Menggunakan pgvector
Laravel 13 meresmikan dukungan kelas wahid untuk pgvector yang dapat disandingkan secara presisi dengan hasil embeddings dari AI SDK. Kolaborasi ini memungkinkan Anda untuk merancang fitur pencarian berbasis makna atau konteks semantik—lebih dari sekadar pencocokan karakter konvensional—langsung berbekal query builder bawaan.
Mekanismenya dikemas secara elegan: teks akan diproses menjadi vector embedding (representasi deret angka) menggunakan model AI, yang selanjutnya disimpan ke dalam kolom vektor di basis data PostgreSQL, lalu dikomparasikan mengacu pada tingkat kemiripan semantiknya.
$documents = DB::table('documents')
->whereVectorSimilarTo('embedding', 'Best wineries in Napa Valley')
->limit(10)
->get();
Untuk menjembatani pembuatan embeddings, Anda dapat mengandalkan helper baru yang ditanamkan pada komponen String:
$embedding = Str::toEmbeddings($recipe->title . ' ' . $recipe->description);
Dalam implementasi riilnya, ini berarti pengguna yang menelusuri kueri “spaghetti” berpotensi menemukan resep dengan judul “pasta 15 menit”—sebuah skenario pencarian cerdas yang hampir mustahil diwujudkan hanya dengan perbandingan kata kunci semata. Namun ingat, implementasi fitur ini mensyaratkan berjalannya PostgreSQL yang telah terinstalasi ekstensi pgvector.
JSON:API Resources sebagai Standar Bawaan
Lewat fungsionalitas IlluminateHttpResourcesJsonApiJsonApiResource, Laravel 13 resmi menstandarisasi JSON:API resources. Fitur bawaan (first-party) ini mengotomatisasi penanganan resource object serialization, relationship inclusion, pembentukan sparse fieldsets, links, sekaligus memproduksi response headers yang sepenuhnya tunduk pada regulasi JSON:API.
php artisan make:resource PostResource --json-api
Objek resource yang dihasilkan akan langsung dibekali pemisahan entitas antara properti attributes dan relationships—menghasilkan kerangka fondasi yang jauh lebih rapi, utamanya bila struktur API Anda dikonstruksi mengikuti standar spesifikasi JSON:API. Menariknya, fungsi ini sebenarnya sudah diam-diam digulirkan pada versi Laravel 12.45, namun baru mendapat panggung dokumentasi dan promosi resminya pada rilis kali ini.
PreventRequestForgery — Pengamanan CSRF yang Lebih Ketat
Laravel 13 menggagas middleware baru bernama PreventRequestForgery, yang menanamkan lapisan verifikasi permintaan berbasis sumber (origin-aware request verification) di atas benteng proteksi token CSRF tradisional. Saat diakses dari peramban modern, middleware ini secara proaktif akan memvalidasi header Sec-Fetch-Site, dan hanya akan mundur selangkah (fallback) menuju metode validasi token apabila sinyal origin tersebut tidak terdeteksi.
Inovasi ini menaikkan taraf keamanan aplikasi secara nyata. Kendati demikian, Anda dituntut untuk ekstra teliti apabila kerangka aplikasi Anda telah dimodifikasi dengan alur CSRF kustom, mensyaratkan kompatibilitas dengan penjelajah web usang, atau memuat rekayasa pergerakan subdomain yang di luar kelaziman.
Cache::touch() — Memperpanjang Masa Aktif Tanpa Keharusan Mengunduh Data
Metode anyar Cache::touch() membuka celah efisiensi untuk memperpanjang durasi Time-To-Live (TTL) dari sebuah entitas di dalam memori singgah (cache) tanpa perlu repot memanggil (fetch) atau menyimpan ulang kalkulasi nilainya:
Cache::touch('user_session:123', 3600); // Perpanjangan durasi dalam wujud detik
Cache::touch('analytics_data', now()->addHours(6)); // Menggunakan objek DateTime
Cache::touch('report_cache', null); // Diperpanjang secara permanen tanpa batas
Sebelumnya, siklus penambahan TTL mewajibkan Anda untuk memanggil instruksi get yang dirangkai dengan aksi put. Praktik masa lampau ini berisiko menyumbat jaringan akibat transfer data nilai cache yang sebenarnya tidak esensial. Pemanggilan Cache::touch() mengeliminasi rute panjang tersebut—Redis murni mengaktifkan sebaris perintah EXPIRE, Memcached mengeksekusi TOUCH, dan database driver cukup mendaratkan satu taktik UPDATE tunggal. Method revolusioner ini telah direkatkan di semua lapisan cache driver yang difasilitasi Laravel.
Pengaturan Rute Antrean via Queue::route()
Fungsionalitas mutakhir Queue::route() menganugerahi Anda kuasa untuk menyetel rutinitas antrean (queue) maupun koneksi default secara terpusat untuk sebuah klasifikasi job tertentu:
Queue::route(ProcessPodcast::class, connection: 'redis', queue: 'podcasts');
Deretan Fitur Pendukung Lainnya
- Menjeda dan Melanjutkan Jadwal (Schedule pause and resume) — Anda kini sanggup menunda sementara (pause) maupun membangunkan kembali (resume) komando yang telah terjadwal melalui intruksi artisan
schedule:pausedanschedule:resume. - Database Driver pada Reverb — Pilihan rute driver gres yang didedikasikan bagi kebutuhan operasional server websocket Reverb.
- Teams dalam Paket Starter Kits — Kemampuan kompartementalisasi tim (mengadopsi spirit dari fitur lawas Jetstream) akan diinfuskan ke dalam starter kits, memampukan administrator untuk bermanuver antar dua tim terpisah pada tab peramban yang berlainan secara bersamaan.
- Otorisasi Passkey (WebAuthn) — Mekanisme autentikasi nirkata-sandi (passkeys) siap disajikan sebagai modul standar di dalam starter kits dan layanan Laravel Fortify.
- PHP 8.5 Closure Attributes — Menjembatani sintaks attribute yang kian lentur dan ekspresif bagi mereka yang telah bermigrasi ke lingkungan PHP 8.5.
Panduan Linimasa dan Siklus Hidup Rilis
| Versi | Rentang PHP | Tanggal Rilis | Batas Perbaikan Bug (Bug Fixes) | Batas Pembaruan Keamanan (Security Fixes) |
|---|---|---|---|---|
| 11 | 8.2 – 8.4 | 12 Maret 2024 | 3 September 2025 | 12 Maret 2026 |
| 12 | 8.2 – 8.5 | 24 Februari 2025 | 13 Agustus 2026 | 24 Februari 2027 |
| 13 | 8.3 – 8.5 | 17 Maret 2026 | Q3 2027 | Q1 2028 |
Sebagai tinjauan ke depan, Laravel 14 diproyeksikan bakal unjuk gigi pada kuartal pertama (Q1) 2027, menjaga tradisi irama rilis tahunan secara presisi.
Upgrade dari Laravel 12 menuju 13
Opsi 1: Laravel Boost (Jalur Rekomendasi Utama)
Metode upgrade dengan memberdayakan asisten agen AI, Laravel Boost. Langkah pertamanya, pastikan Anda telah menarik pembaruan package Boost ke iterasi termutakhir:
composer update laravel/boost
php artisan boost
Tahap berikutnya, delegasikan proses upgrade tersebut ke coding agent seperti Claude Code. Laravel Boost memasok prompt instan berlabel “Upgrade Laravel 12 to 13” yang didesain agar secara otonom membedah kode Anda, mensinkronisasi daftar dependensi, menjalakan pengujian (tests), serta merekayasa penyesuaian sintaks yang dimandatkan.
Pada peragaan resmi, migrasi aplikasi berstatus starter kit dari lingkup Laravel 12 ke 13 sukses dibereskan hanya dalam rentang waktu sekian menit. Intervensi manuver tersebut semata-mata dihabiskan untuk penyelarasan pustaka composer.json atas sejumlah dependensi esensial macam Tinker dan kustomisasi variabel session keys.
Opsi 2: Laravel Shift
Upgrade ke Laravel 13 juga bisa dengan cara konvensional dengan Laravel Shift. Tools ini menjalankan upgrade dengan mekanisme pull request dengan atomic commits yang sangat ramah untuk di-review. Menimbang keandalannya, metode ini bakal menjadi saran paling masuk akal untuk pengembang aplikasi berskala besar dan bercabang.
Opsi 3: Upgrade Manual
Bagi developer yang ingin kontrol penuh pada setiap baris kode, dapat melakukan upgrade dengan metode manual dengan mengikuti pedoman berikut:
- Pastikan server telah menjalankan PHP versi 8.3 ke atas.
- Update
composer.jsonpada area framework:"laravel/framework": "^13.0". - Jalankan perintah
composer update --with-all-dependencies. - Pahami rekam jejak breaking changes melalui pustaka dokumentasi resmi Laravel.
- Drain sisa antrean (queue) sebelum deploy, karena adanya pergeseran mekanisme serialisasi job.
- Lakukan test suite untuk memastikan setiap baris kode aplikasi berjalan dengan lancar.
Laravel 13 Menandai Pergeseran dari “Framework Web” ke “Platform Aplikasi Modern”
Di atas kertas, Laravel 13 bisa terlihat seperti rilis yang “tidak terlalu heboh” karena tim Laravel sengaja menekan breaking changes. Tetapi justru di situlah signifikansinya. Laravel sedang mencoba membuktikan bahwa framework tidak harus memilih antara stabilitas dan arah teknologi baru.
Ada tiga sinyal besar di sini.
Pertama, AI menjadi integrasi resmi di dalam framework. Dengan Laravel AI SDK, integrasi embeddings, agents, audio, images, dan vector store tidak lagi terasa seperti eksperimen yang ditambahkan belakangan. AI diperlakukan sebagai bagian dari stack modern Laravel.
Kedua, Laravel berusaha menangkap pola arsitektur aplikasi modern yang lebih luas: API standards, passwordless auth, dan semantic retrieval. Kombinasi JSON:API resources, passkeys, dan pgvector search menunjukkan bahwa Laravel ingin relevan bukan hanya untuk CRUD app tradisional, tetapi juga untuk AI app, mobile backend, B2B integration layer, dan internal platform engineering.
Ketiga, perluasan PHP attributes memberi petunjuk tentang arah ergonomi framework ke depan. Laravel tampaknya makin nyaman menjadikan deklarasi perilaku framework lebih dekat ke class yang bersangkutan. Itu bisa meningkatkan kejelasan bagi sebagian tim, walau tentu tidak semua codebase akan langsung mengadopsinya. Karena sifatnya opsional, Laravel berhasil menghindari memecah ecosystem hanya demi gaya syntax baru.
Secara kompetitif, langkah ini masuk akal. Banyak developer saat ini mengevaluasi framework bukan hanya dari DX tradisional, tetapi juga dari seberapa cepat framework tersebut bisa membantu mereka mengadopsi AI workflows, search yang lebih pintar, dan security UX yang lebih modern. Laravel 13 menjawab itu tanpa memaksa rewrite besar.
Apa yang Perlu Dilakukan Developer Setelah Ini
- Audit environment production dan CI untuk memastikan PHP 8.3 tersedia.
- Baca release notes resmi dan cek area yang menyentuh named arguments, security middleware, dan queue behavior.
- Prioritaskan upgrade bila Anda masih berada di versi yang mendekati atau melewati masa support.
- Evaluasi apakah project Anda akan mendapat manfaat langsung dari:
- AI SDK untuk agent/tool-calling/embeddings.
- pgvector search untuk semantic retrieval.
- Passkeys untuk login yang lebih aman dan lebih halus.
- JSON:API resources bila Anda mengelola API dengan kontrak yang ketat.
Penutup
Laravel 13 bukan rilis yang mencoba mengesankan lewat daftar breaking change panjang atau redesign besar-besaran. Nilainya justru datang dari hal yang lebih sulit dicapai: menambah banyak kapabilitas modern, dengan tetap menjaga upgrade tetap membosankan dalam arti yang baik. Untuk ekosistem Laravel, itu mungkin kabar paling penting minggu ini.
Responses