Prompt detayı
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.
# 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);