Laravel 13 çıktı. Bu sürümdeki en önemli yenilik, çoğu için “sıfır kırılma değişiklikleri” ile gelmesi. Sürüm, söz dizimini modernize etme ve yapay zekayı benimseme üzerine yoğunlaşmış durumda.
1. PHP 8.3 Yeni Temel
1. PHP 8.3 Yeni Temel
Laravel 13, resmi olarak PHP 8.3 gerektirir.
- PHP 8.1 ve 8.2 desteği sona ermiştir.
- Bu, framework’ün içsel olarak yazılı sabitleri ve
json_validate()kullanmasını sağlar. - Runtime’ı sadece güncelleyerek küçük bir performans artışı elde edersiniz.
2. Her Yerde Nitelikler
2. Her Yerde Nitelikler
En büyük görsel değişiklik, sınıf özelliklerinden uzaklaşılarak PHP Attributes kullanımına geçiştir. Bu isteğe bağlıdır, ancak modelleri ve görevleri çok daha temiz hale getirir.
Eski Yöntem:
class User extends Model {
protected $table = 'users';
protected $fillable = ['name', 'email'];
}
Yeni Yöntem (Laravel 13):
#[Table('users')]
#[Fillable(['name', 'email'])]
class User extends Model {}
3. İlk Parti AI SDK
3. İlk Parti AI SDK
Laravel artık yerel bir AI SDK’ya (laravel/ai) sahip. OpenAI, Anthropic veya Gemini ile iletişim kurmak için topluluk paketleri ile uğraşmanıza gerek kalmadı.
Özellikler:
- Provider Agnostic:
config/ai.phpdosyasını değiştirerek OpenAI, Anthropic ve Gemini arasında geçiş yapabilirsiniz, uygulama mantığınızı değiştirmeden. - Unified API: Metin, görüntü ve ses için tek bir sözdizimi.
Metin Üretimi:
use Laravel\Ai\Facades\Ai;
$response = Ai::prompt('Explain quantum computing to a five year old');
echo $response->text;
Görüntü Üretimi:
use Laravel\Ai\Image;
$image = Image::of('A futuristic city in the style of Van Gogh')
->landscape()
->generate();
$image->store('cities/future.png');
Bir Agent Oluşturma:
Agent’lar, talimatları (sistem istemleri) ve araçları saran sınıflardır.
namespace App\Ai\Agents;
use Laravel\Ai\Contracts\Agent;
use Laravel\Ai\Promptable;
class SupportAgent implements Agent
{
use Promptable;
public function instructions(): string
{
return 'You are a helpful customer support assistant for our SaaS.';
}
}
// Kullanım:
$reply = (new SupportAgent)->prompt('How do I reset my password?');
4. Cache Yönetimi
4. Cache Yönetimi
Küçük ama akıllı bir ekleme. Artık veriyi öncelikle almanıza gerek kalmadan bir cache öğesinin ömrünü uzatabilirsiniz.
Eski Yöntem (Manuel Yenileme):
$value = Cache::get('session_data');
if ($value) {
Cache::put('session_data', $value, now()->addMinutes(30));
}
Yeni Yöntem (Laravel 13):
Cache::touch('session_data', 1800); // 1800 saniye
Yalnızca anahtarı “touch” edersiniz. Bu, veriyi PHP belleğine çekmeden doğrudan cache deposundaki (Redis/Memcached) süresini sıfırlar.
5. JSON:API Kaynakları (v13’te Yeni)
5. JSON:API Kaynakları (v13’te Yeni)
Laravel 13, sıkı spesifikasyon uyumu için özel bir JsonApiResource sunmaktadır. Kimlikleri, türleri ve iç içe yapıları otomatik olarak yönetir.
Kurulum:
php artisan make:resource PostResource --json-api
Artık manuel iç içe geçirme yerine, deklaratif bir stil kullanır.
Karşılaştırma:
| Özellik | Eski Yöntem (Manuel) | Yeni Yöntem (v13 Yerel) |
|---|---|---|
| Yapı | Veri, kimlik, tür manuel olarak tanımlanır. | Otomatik olarak yönetilir. |
| Öznitelikler | Tek bir dizi içinde karışık halde. | Temiz $attributes özelliği. |
| Bağlantılar | Manuel whenLoaded denetimleri. | Temiz $relationships özelliği. |
Örnek Kod (v13):
use Illuminate\Http\Resources\JsonApi\JsonApiResource;
class PostResource extends JsonApiResource
{
public $attributes = ['title', 'content'];
public $relationships = [ ];
}
Artık bir model üzerinde doğrudan
toResource()kullanabilirsiniz ve Laravel doğru kaynak sınıfını bulacaktır.
Kişisel Görüşüm
Kişisel Görüşüm
Laravel 12 üzerinde iseniz, endişelenmeyin. Güncelleme çoğunlukla bir bağımlılık artışı niteliğindedir.
“Attribute” sözdizimi gelecektir; daha IDE dostudur ve yapılandırmayı mantığın tam bulunduğu yerde tutar.
Yeni bir projeye başlıyorsanız, hemen 13 ile başlamanızı öneririm; çünkü bu sürüm AI SDK ve PHP 8.3 hızısını almanızı sağlar.
Kaynak: Orijinal Makale


