· Admin

Laravel + Claude Code Ekosistemi: Tum Araclar ve Konfigurasyon

Claude Code'u Laravel projelerinde kullanmaya basladigimda, onu duz bir chatbot gibi kullaniyordum. "Su kodu yaz", "Bu hatayi duzelt" diye prompt atip cikan sonucu kopyaliyordum. Ama zamanla ogrendim ki Claude Code, dogru konfigurasyonla bir "pair programmer"dan cok daha fazlasi olabiliyor.

Bu yazida Claude Code'u Laravel gelistirme ortaminda nasil maksimum verimle kullanacaginizi, hangi ayarlari yapmaniz gerektigini ve gunluk is akisinda nasil entegre edecginizi anlatacagim.

CLAUDE.md: Projenizin Beyni

Claude Code bir projeyi actiginda ilk is olarak CLAUDE.md dosyasini okur. Bu dosya, projenizin kurallarini, yapilanmasini ve tercihlerinizi Claude'a anlatan bir rehberdir.

Temel CLAUDE.md Yapisi

# Proje Adi - CLAUDE.md

## Proje Hakkinda
- Laravel 12 + PHP 8.4
- Tailwind CSS 4 + Alpine.js
- PostgreSQL 17 + Redis
- Queue driver: Redis
- nwidart/laravel-modules ile modular yapi

## Kod Standartlari
- PSR-12 uyumlu kod yaz
- Strict types kullan: declare(strict_types=1)
- Return type declarations zorunlu
- Method isimleri camelCase, degiskenler snake_case (Laravel convention)
- Turkce commit mesajlari YAZMA, Ingilizce yaz

## Veritabani Kurallari
- Migration'larda her zaman down() method'unu yaz
- Foreign key'lerde cascadeOnDelete() kullan
- Soft delete gereken tablolarda SoftDeletes trait'i ekle
- Index'leri unutma, ozellikle foreign key ve sik sorgulanan kolonlar

## Test Kurallari
- Feature testleri tests/Feature/ altinda
- Her endpoint icin en az 1 test
- RefreshDatabase trait'i kullan
- Factory'ler ile test verisi olustur, hardcoded veri kullanma

## Guvenlik
- Password::defaults() ile validation (min 8, letters, numbers, uncompromised)
- Her form'da CSRF token
- Mass assignment korumasini devre disi birakma ($guarded = [] YAPMA)
- API endpoint'lerinde rate limiting uygula

## Modul Yapisi
- Her modul Modules/{ModuleName}/ altinda
- Modul route'lari: Modules/{Module}/routes/web.php ve api.php
- Modul migration'lari: Modules/{Module}/database/migrations/
- Modul arasi bagimlilik minimize et

Dosya Hiyerarsisi

Claude Code uc seviyede CLAUDE.md okur:

  1. Global (~/.claude/CLAUDE.md): Tum projeleriniz icin gecerli tercihler
  2. Proje Root (/proje/CLAUDE.md): Projeye ozel kurallar
  3. Dizin bazli (/proje/Modules/Blog/CLAUDE.md): Modul veya alt dizin kurallari

Bu hiyerarsi cok guclu. Mesela Blog modulu icin ozel kurallar tanimlayin:

# Blog Modulu - CLAUDE.md

## Bu Modulde
- Post model'i SoftDeletes kullaniyor
- Slug otomatik olusturuluyor (Str::slug)
- Featured image zorunlu degil
- Status enum: draft, published, archived
- CKEditor 5 zengin metin editoru kullaniliyor
- SEO meta alanlari: meta_title, meta_description, og_image

MCP Server Entegrasyonu

MCP (Model Context Protocol) server'lari Claude Code'a ek yetenekler kazandiriyor. Laravel icin en onemli MCP server: Laravel Boost.

Laravel Boost Kurulumu

// .claude/mcp.json (proje root'unda)
{
  "mcpServers": {
    "laravel-boost": {
      "command": "npx",
      "args": ["-y", "@nicepkg/laravel-boost"]
    }
  }
}

Laravel Boost ne yapar?

  • composer.json ve package.json'daki paketleri analiz eder
  • Yuklu paketlerin API'lerini ve pattern'lerini Claude'a sunar
  • Route listesini, model iliskilerini, migration yapisini otomatik cikarir
  • Boylece Claude "bu projede Spatie Permission kullaniliyor" gibi bilgilere sahip olur

Diger Faydali MCP Server'lar

{
  "mcpServers": {
    "laravel-boost": {
      "command": "npx",
      "args": ["-y", "@nicepkg/laravel-boost"]
    },
    "context7": {
      "command": "npx",
      "args": ["-y", "@context7/mcp"]
    },
    "sequential-thinking": {
      "command": "npx",
      "args": ["-y", "@anthropic/sequential-thinking-mcp"]
    }
  }
}

Context7: Herhangi bir kutuphanenin guncel dokumantasyonunu AI'a sunar. "Laravel 12'de bu nasil yapiliyordu?" sorusuna cevap verirken hallucination yapmaz cunku gercek dokumanlardan okur.

Sequential Thinking: Karmasik problemleri adim adim cozmek icin. "Coklu tenancy mimarisini kur" gibi buyuk gorevlerde isime cok yariyor.

PHPStan/Larastan Entegrasyonu

Claude Code'un yazdigi kodu otomatik kontrol ettirmek icin Larastan harika:

composer require --dev larastan/larastan
# phpstan.neon
includes:
    - vendor/larastan/larastan/extension.neon

parameters:
    paths:
        - app/
        - Modules/
    level: 6
    ignoreErrors:
        - '#Call to an undefined method Illuminate\\Database\\Eloquent\\Builder#'

CLAUDE.md'ye ekleyin:

## Statik Analiz
- Her kod degisikliginden sonra `./vendor/bin/phpstan analyse` calistir
- Level 6 hata olmamali
- Larastan kullaniliyor, Eloquent magic method'lari tanimli

Bu sayede Claude Code bir dosyayi degistirdikten sonra otomatik olarak PHPStan calistirip hatalari duzeltebilir.

Test-Driven Workflow

Claude Code ile en verimli calisma sekli TDD:

  1. Once test'i yaz (veya Claude'a yazdirt)
  2. Claude'a testi geciren kodu yazdirt
  3. Testi calistir, basarisizsa Claude'a hatayi goster
  4. Refactor et
## CLAUDE.md'ye ekle
## Test Workflow
- Yeni ozellik eklerken ONCE testi yaz
- Test gecene kadar kodu duzelt
- `php artisan test --filter=TestAdi` ile spesifik test calistir
- Coverage raporu: `php artisan test --coverage --min=80`

Ornek prompt dizisi:

1. "Blog Post'larin slug'dan bulunabilmesi icin bir test yaz"
2. "Bu testi geciren kodu yaz"
3. "php artisan test --filter=BlogPostSlugTest calistir"
4. "Hata var, duzelt" (hata varsa)

Gunluk Workflow Ipuclari

Sabah Rutini

Projeye baslarken Claude Code'a su context'i verin:

Projeye devam ediyorum. Son durumu kontrol et:
- git log --oneline -5
- php artisan test
- ./vendor/bin/phpstan analyse

Migration Olusturma

users tablosuna phone_verified_at (nullable timestamp) ve
two_factor_enabled (boolean, default false) kolonlarini ekle.
Migration yaz ve model'i guncelle.

Claude Code CLAUDE.md'deki kurallari okudugu icin otomatik olarak:

  • down() method'unu yazar
  • Uygun index'leri ekler
  • Model'deki $fillable ve $casts dizilerini gunceller

Feature Gelistirme

Blog modulune tag sistemi ekle:
- tags tablosu (id, name, slug, created_at)
- post_tag pivot tablosu
- Tag model ve Post-Tag many-to-many iliskisi
- CRUD endpoint'leri (resource controller)
- Form request validation
- Feature test'leri

Bu tek prompt ile Claude Code 6-7 dosya olusturur/gunceller ve hepsi projenizin kurallarini takip eder.

Hata Ayiklama

Bu hatanin sebebini bul ve duzelt:
SQLSTATE[23503]: Foreign key violation: 7 ERROR: update or delete on table
"categories" violates foreign key constraint "posts_category_id_foreign" on
table "posts"

Claude Code veritabani yapisini bildigindan (Larastan + CLAUDE.md) cozumu hizla bulur.

Cursor Entegrasyonu

Cursor IDE kullaniyorsaniz, .cursorrules dosyasi ile benzer kurallari Cursor'a da verebilirsiniz:

# .cursorrules
Bu proje Laravel 12 + PHP 8.4 kullaniyor.
nwidart/laravel-modules ile modular yapi var.
PSR-12 kod standardi, strict types zorunlu.
Test'ler PHPUnit ile, Feature testleri oncelikli.
Veritabani PostgreSQL, cache Redis.
Turkce yorum yazma, Ingilizce yaz.

Ama benim tercihim Claude Code. Cursor inline oneri yapar, Claude Code ise projenin tamamini gorup mimari kararlar verebilir. Ikisini birlikte kullanmak da mumkun.

Faydali Claude Code Komutlari

Gunluk kullandigim bazi pattern'ler:

Route kontrolu:

php artisan route:list --path=api/v1 ciktisini goster

Model iliskileri:

Post model'indeki tum iliskileri listele ve
eksik inverse iliskileri ekle

Performans:

Bu controller'daki N+1 query sorunlarini bul ve
eager loading ile duzelt

Refactoring:

OrderController@store method'unu Service pattern'ine tasi.
OrderService olustur, validation'i FormRequest'e al.

Guvenlik taramasi:

Bu controller'daki potansiyel guvenlik aciklari neler?
SQL injection, XSS, mass assignment kontrol et.

Sonuc

Claude Code + dogru konfigurasyon = neredeyse tam zamanli bir kıdemli gelistirici. Ama unutmayin: o bir arac, mimar siz olmalsiniz. Kurallari siz belirleyin, mimariyi siz cikin, Claude Code hizla implemente etsin.

CLAUDE.md'nizi guncel tutun. Her yeni karar aldiginizda, her yeni pattern belirledginizde oraya yazin. Claude Code bunu okudukcca projenize daha uyumlu kod uretir.

ProjeMan olarak tum projelerimizde bu yaklasimi kullaniyoruz ve gelistirme hizimiz gozle gorulur sekilde artti. Ozellikle modular Laravel projelerinde CLAUDE.md hiyerarsisi muhtesem calisiyor.