Laravel ekosistemi hızla evrim geçiriyor. Laravel 13—17 Mart 2026 tarihinde piyasaya sürülmesi planlanıyor—şimdiye kadarki en rafine güncellemelerden biri olma yolunda. Taylor Otwell’in Laracon EU’da resmen tanıttığı Laravel 13, tekerleği yeniden icat etmeyi veya büyük çapta kırıcı değişiklikler getirmeyi amaçlamıyor. Bunun yerine, geliştirici deneyimine (DX), modern PHP 8.3 özelliklerine ve yaşam kalitesi iyileştirmelerine odaklanıyor.
<p>Ne gibi değişiklikler olduğunu ve yeni özelliklerden nasıl yararlanacağını merak ediyorsanız, doğru yerdesiniz. Laravel 13'te gelecek her detaya, pratik kod örnekleri ile birlikte dalalım.</p>
<hr/>
<h2>
<a name="1-the-great-php-attributes-overhaul" href="#1-the-great-php-attributes-overhaul"></a>
1. PHP Özellikleri Üzerine Büyük Değişiklik
</h2>
<p>Laravel 13'ün başlıca özelliği, <strong>PHP 8 Özelliklerinin</strong> çerçeve genelinde benimsenmesidir. Tarihsel olarak, Laravel bileşenleri (Model, Job, Command) korumalı özellikler kullanılarak yapılandırılıyordu. Artık, sınıf tanımlarınızın hemen üstünde temiz, bildirimsel özellikler kullanarak hemen hemen her şeyi yapılandırabilirsiniz.</p>
<p>*Not: Bu tamamen ekleyici, kırıcı olmayan bir değişikliktir. Eski özellik tabanlı yaklaşımı tercih ediyorsanız, tamamen işlevsel olmaya devam edecektir! *</p>
<h3>
<a name="eloquent-models" href="#eloquent-models"></a>
Eloquent Modeller
</h3>
<p>Artık tablo adlarınızı, gizli özelliklerinizi, doldurulabilir özelliklerinizi ve daha fazlasını sınıfınızın içinde karmaşaya neden olmadan tanımlayabilirsiniz.</p>
<p><strong>Önceki (Laravel 12):</strong><br/></p>
<div class="highlight js-code-highlight">
<pre class="highlight php"><code><span class="kd">class</span> <span class="nc">User</span> <span class="kd">extends</span> <span class="nc">Model</span>{
protected $table = ‘system_users’;
protected $primaryKey = <span class=”s1>’user_id’;
public $incrementing = false;
protected $keyType = <span class=”s1>’string’;
<span class="k">protected</span> <span class="nv">$fillable</span> <span class="o">=</span> <span class="p">[</span><span class="s1>'name'</span><span class="p">,</span> <span class="s1>'email'</span><span class="p">];</span>
<span class="k">protected</span> <span class="nv">$hidden</span> <span class="o">=</span> <span class="p">[</span><span class="s1>'password'</span><span class="p">,</span> <span class="s1>'remember_token'</span><span class="p">];</span>}
<p><strong>Sonrasında (Laravel 13):</strong><br/></p>
<div class="highlight js-code-highlight">
<pre class="highlight php"><code><span class="kn">use</span> <span class="nc">Illuminate\Database\Eloquent\Model</span><span class="p">;</span>use Illuminate\Database\Eloquent\Attributes\Table;
use Illuminate\Database\Eloquent\Attributes\Fillable;
use Illuminate\Database\Eloquent\Attributes\Hidden;
#[Table(‘system_users’, key: ‘user_id’, keyType: ‘string’, incrementing: false)]
#[Fillable([‘name’, ’email’])]
#[Hidden([‘password’, ‘remember_token’])]
class User extends Model
{
// Sınıf gövdesi tamamen boş!
}


