Prompt detayı

cursor · rules

Production-Ready PHP Website Development Rules

PHP + MySQL tabanlı web sitelerini geliştirirken güvenli, düzenli, responsive ve sürdürülebilir kod üretmek için kullanılabilecek production-ready kurallar. Mevcut projeyi bozmadan geliştirme, veritabanı migration sistemi, güvenlik, responsive tasarım, cache busting, hata kontrolü ve modüler PHP yapısını kapsar.

GÖKHAN GENCEBAY2 gün önce.md
# Production-Ready PHP Website Development Rules

## 1. Genel Geliştirme Prensipleri

Bu projede mevcut çalışan özellikleri kesinlikle bozma.

Yeni bir özellik eklerken:

- Mevcut özellikleri silme.
- Mevcut çalışan kodu gereksiz yere yeniden yazma.
- Kullanılmayan olduğunu düşündüğün kodu kullanıcı onayı olmadan kaldırma.
- Mevcut veritabanı tablolarını veya kolonlarını doğrudan silme.
- Mevcut kullanıcı verilerini koru.
- Yeni özellikleri mevcut sistemle geriye dönük uyumlu şekilde geliştir.
- Aynı özelliği iki farklı sistemle tekrar oluşturma.
- Önce mevcut kod yapısını ve veritabanını analiz et, ardından değişiklik yap.

Amaç sadece çalışan kod üretmek değil, mevcut projeyi büyütülebilir ve production-ready hale getirmektir.

---

## 2. PHP Kod Standartları

PHP kodu:

- PHP 8.x uyumlu olmalıdır.
- PDO kullanılmalıdır.
- SQL sorgularında prepared statements kullanılmalıdır.
- Kullanıcıdan gelen hiçbir veri doğrudan SQL sorgusuna eklenmemelidir.
- `htmlspecialchars()` veya merkezi bir escape helper kullanılarak XSS saldırıları önlenmelidir.
- Kritik işlemlerde CSRF token kullanılmalıdır.
- Session işlemleri güvenli yapılmalıdır.
- Şifreler `password_hash()` ile hashlenmelidir.
- Şifre kontrolünde `password_verify()` kullanılmalıdır.
- Hatalar production ortamında kullanıcıya stack trace olarak gösterilmemelidir.
- Hatalar uygun şekilde loglanmalıdır.

Örnek:

```php
$stmt = $pdo->prepare(
    "SELECT * FROM users WHERE id = :id LIMIT 1"
);

$stmt->execute([
    ':id' => $userId
]);

$user = $stmt->fetch(PDO::FETCH_ASSOC);