Laravel, PHP üzerine inşa edilmiş bir web geliştirme framework’üdür. Bu nedenle, projenizin sağlam bir temele oturması için belirli kurallara uymak kritik önem taşır. Aşağıda, PHP 8.2 ve Laravel 11 ile birlikte kullanılacak olan en iyi uygulamalara yönelik bir rehber bulacaksınız.
Temel Dosya
Temel Dosya
# Laravel proje kuralları
## Teknoloji Yığını
PHP 8.2+, Laravel 11, MySQL, Redis (caching ve queue işlemleri için)
## PHP Sürümü Gereksinimleri
- PHP 8.x özellikleri kullanın: named arguments, match expressions, enum, readonly, fibers
- PHP 7.x veya daha eski kalıpları asla önerme
- Eski stil konstrüktörler kullanma, mysql_ fonksiyonları kullanma, PHP 4/5 OOP kalıpları kullanma
## Laravel Konvansiyonları
- Modeller: app/Models/
- Kontrolcüler: ince — mantık Servisler veya Eylemler içerisinde olmalı
- Servisler: app/Services/ — karmaşık iş mantığı için
- Eylemler: app/Actions/ — tek sorumluluk işlemleri için
- Repository'ler: app/Repositories/ — sadece veri erişimi karmaşık olduğunda
- Form İstekleri ile doğrulama: kontrolcülerde asla doğrulama yapma
- API yanıtları için kaynaklar: kontrolcülerde JSON'u manuel olarak biçimlendirme
## Veri Tabanı
- Eloquent ORM. Migration dosyaları haricinde ham SQL kullanma.
- N+1 sorgularını önlemek için ilişkileri eager load et.
- Yeniden kullanılabilir sorgu mantığı için sorgu scopu kullan.
- Tüm şema değişiklikleri için migration kullan — tabloları doğrudan değiştirme
## Kullanılması Gereken Kalıplar
- Fat controller yerine service class kullan
- Doğrulama için Form Request sınıfları
- API yanıtları için Eloquent Resources
- Arka plan işleme için Jobs/Queues
- Gevşek bağlı yan etkiler için Events/Listeners
## Kaçınılması Gereken Kalıplar
- İş mantığını kontrolcülerde veya modellerde bulundurma
- Migration dosyaları dışında ham DB::statement() kullanma
- İşe alınan kodda dd() veya var_dump() kullanma
- Enjekte edilmesi gereken şeyler için statik yöntemler kullanma
## Kurallar
- Minimal iz bırak. Yapılacak iş için gereken dosyaları yalnızca değiştir.
- PSR-12 isimlendirme kurallarına uy.
- Yazmadığın kod üzerinde yorum yapma.
Bu Kuralların Önlediği Durumlar
Bu Kuralların Önlediği Durumlar
Kontrolcülerde Ham SQL Kullanımı — Eloquent bu durumu yönetmeyi bilmediğinde Cursor varsayılan olarak ham SQL önerir. Açık kural bunu engeller.
Kontrolcülerde Mantık Bulunması — Klasik Laravel anti-paterni. Kural, mantığı Servislere taşır.
PHP 7 Kalıpları — Eğer kod tabanınızda eski kod varsa, Cursor bu kalıpları kopyalayabilir. PHP 8.2+ belirlemesi bu kaymayı durdurur.
N+1 Sorguları — Cursor genellikle döngülerde eager loading oluşturur. Kural bunu açık hale getirir.
Proje Özel Bağlamı Ekleme
Proje Özel Bağlamı Ekleme
Cursor’ın yanlış yönlendirme yapmaması için belirli modellerinizi ve ilişkilerini ekleyin:
## Anahtar Modeller
- Kullanıcı: birçok Siparişe sahip, birçok Rol ile ilişkilidir
- Sipariş: Kullanıcıya ait, birçok Sipariş Kalemine sahip, bir Ödeme alır
- Ürün: birçok Sipariş Kalemine sahip, birçok Kategori ile ilişkilidir
## Kimlik Doğrulama
Laravel Sanctum. Auth middleware: auth:sanctum. İstekten Kullanıcı: $request->user()
Bağlam ne kadar spesifik olursa, yanlış yönlendirme o kadar azalır.
Diğer yığınlar için tam .cursorrules şablonları için: builtbyzac.com/cursor-rules.html. Üretim aracı: builtbyzac.com/tools/cursorrules-generator.html.
Kaynak: Orijinal Makale


