Davet et, 1 ay ücretsiz Pro kazanNasıl çalışır?

Gemini CLI ile Laravel projesi yönetimi: pratik rehber

Gemini CLI’yı Laravel projesinde etkili kullanın: GEMINI.md hazırlama, Eloquent ve migration görevleri, test döngüsü ve paralel ajan yönetimi.

Solviera Teknoloji 6 dk okuma

Gemini CLI, Laravel projesinde gemini komutuyla başlatılır ve proje kökündeki GEMINI.md dosyasını okuyarak Laravel’e özgü kurallarla çalışır. Eloquent modelleri, migration’lar, Artisan komutları, Blade, queue ve test süreçleri için somut görevler verdiğinizde terminal üzerinden kod üretir ve testleri çalıştırır. Ajan, proje dosyalarını bağlam olarak kullanır; böylece mevcut controller, model ve migration yapınızı görerek ona uygun kod üretir. Aşağıda bu iş akışını Laravel’de verimli kurmanın yolları var.

Gemini CLI neden Laravel projeleri için iyi çalışır

Gemini CLI, proje dosyalarını ve GEMINI.md talimatlarını bağlam olarak kullandığı için Laravel’in klasör yapısını, servis container’ını ve Artisan komutlarını modellemekte iyidir. Ajan, composer ve php artisan komutlarını kendi terminalinde çalıştırabilir; böylece migration oluşturma, model ve factory üretme gibi tekrarlı işleri sizin adınıza yaparken sonucu hemen test tabanınızla doğrulayabilir. Laravel işlerinde özellikle iyi olduğu alanlar şunlardır: mevcut migration’lardan şema çıkarımı, $fillable ve ilişkiler, Form Request kuralları, queue job iskeletleri ve Pest testleri. Ajan ayrıca App\Models altındaki sınıfları import etmeyi, belongsTo ve hasMany ilişkilerini doğru kurmayı, $casts ve $hidden gibi model özelliklerini tamamlamayı genellikle başarır. Ancak bu doğruluk, ajanın önüne net bir GEMINI.md koymanıza bağlıdır; aksi halde varsayılan PHP alışkanlıkları Laravel’in güvenlik ve organizasyon kalıplarından sapabilir. Ajan, Laravel koleksiyonları ile dizi işleme arasında seçim yaparken çoğunlukla koleksiyon kullanmayı tercih eder; bu da okunabilirliği artırır. Controller’ları ince tutma, Form Request sınıflarına doğrulama taşıma gibi iyi pratikleri siz istediğinizde uygular.

Projeyi ajana hazırlama

Laravel projesinin köküne GEMINI.md ekleyin. Ajan her oturumda bu dosyayı okur; build, test, lint komutlarıyla birlikte sizin tercih ettiğiniz Laravel kurallarını yazın. Örnek dosya:

# GEMINI.md

## Komutlar
- Kurulum: `composer install`
- Test: `./vendor/bin/pest`
- Tek test: `./vendor/bin/pest --filter=ExampleTest`
- Lint: `./vendor/bin/pint --test`
- Statik analiz: `./vendor/bin/phpstan analyse`
- Artisan: `php artisan`

## Klasörler
- `app/Models`: Eloquent modelleri
- `app/Http/Controllers`: Controller'lar
- `app/Http/Requests`: Form Request sınıfları
- `app/Actions`: İş mantığı
- `database/migrations`: Migration dosyaları
- `tests`: Pest testleri

## Laravel kuralları
- Migration'lar geri alınabilir olmalı; `down()` metodunu eksiksiz yaz.
- Eloquent modellerinde toplu atama için `$fillable` tanımla, `$guarded` kullanma.
- İş mantığını controller'a yazma; Action veya Service sınıfı kullan.
- Blade dosyalarında ham PHP kullanma; component ve directive tercih et.
- Testlerde `RefreshDatabase` kullan.
- Yeni kod için mutlaka test ekle.
- Çalıştırmadan önce yapacağın adımları kısa bir plan olarak söyle.

Bu dosya, ajanın Laravel sürümünüze göre davranmasını sağlar. Proje PHPUnit kullanıyorsa test komutunu ./vendor/bin/phpunit olarak değiştirin; ajan bunu gördüğünde Pest varsaymaz. Ayrıca composer.json içindeki Laravel sürümünü okuyup uyumlu syntax üretebilir. GEMINI.md’e projeye özel bilgileri ekleyin: örneğin app/Support altında yardımcı sınıflar varsa, ajanın onları bilmesi iyi olur. Güvenlik katmanı olarak DB::transaction kullanımını zorunlu tutun; ajan böylece birden fazla model kaydını transaction içine alır. Kodlama ajanları için prompt nasıl yazılır? rehberindeki net hedef yazma alışkanlıklarını GEMINI.md kurallarıyla birleştirebilirsiniz.

Çalışma döngüsü ve örnek komutlar

Ajanla çalışma döngüsü şöyle: önce görevi küçük adımlara bölmesini isteyin, sonra yalnızca bir adımı uygulamasını söyleyin. Değişiklikten sonra ilgili testi çalıştırmasını isteyin ve git diff çıktısını gözden geçirin. Hata varsa aynı oturumda düzeltme isteyin; çalışan kodu ancak testler geçtikten sonra commit edin. Ajanın her adımda ne yaptığını terminalde görmek için kısa özet isteyin; böylece beklenmedik dosya değişikliklerini erken fark edersiniz. Büyük görevleri küçük parçalara bölmek ajanın bağlamını korumasını sağlar; örneğin “tüm CRUD’u yaz” yerine “index ve show endpoint’lerini testle birlikte yaz” daha güvenlidir.

Örnek Laravel komutları:

  • “users tablosuna nullable phone alanı ekle; migration oluştur, User modeline $fillable ve $casts güncellemesini yap, ilgili Pest testini çalıştır.”
  • “Post modeli için published scope ekle; sadece yayınlanmış postları döndüren controller metodu ve Pest testini yaz.”
  • “SendWelcomeEmail adında ShouldQueue bir job oluştur; Registered event’inden dispatch et, testte Queue::fake() kullan.”
  • “App\Actions\CreateOrder sınıfını yaz; stok kontrolü yap, eksik stokta exception fırlat, testini ekle.”
  • “Blade bileşeni alert yap; type ve message prop’ları alsın, mevcut iki view’da kullan.”
  • “Order ve OrderItem ilişkisini hasMany ile kur; Order modelinde total_price accessor ekle, factory’leri düzenle, ilişki testini yaz.”

Bu komutlarda hedef net olduğu için ajan daha az sapma yapar ve ürettiği test size güven verir. Komutlarda dosya yollarını tam belirtmek, ajanın doğru sınıfları bulmasını kolaylaştırır.

Laravel’de güçlü olduğu yerler ve dikkat edilmesi gerekenler

Ajan, net talimat verildiğinde Laravel’in tekrarlı işlerinde hızlıdır. Ama Laravel’e özgü bazı noktaları atlayabildiği için diff ve test çıktısını kontrol edin.

Görevİyi promptDikkat
Migration + model“products tablosu için migration ve Product modeli oluştur; price decimal(10,2), stock integer olsun.”Mevcut migration’ı değiştirmek yerine yeni migration eklediğinden emin olun; timestamps ve foreign key isimlerini kontrol edin.
Form Request“StorePostRequest için title zorunlu, en fazla 255 karakter; body zorunlu olsun.”authorize() metodunun true dönmesi gerektiğini ajan bazen unutur; failedValidation özel durumlarını kontrol edin.
Queue job“SendInvoice job’ını ShouldQueue ile yaz; InvoiceCreated event’inden dispatch et.”Job implements ShouldQueue olmazsa senkron çalışır; connection/queue adını projeye göre belirtmezseniz yanlış kuyruğa gidebilir.
Pest testi“User modelinin orders ilişkisini test eden Pest testi yaz.”RefreshDatabase kullanmayı unutabilir; test verisi için factory yerine elle DB insert edebilir.
Artisan komutu“users:export adında bir komut ekle; CSV çıktısı üretsin, User modelini kullansın.”Komut imzasını signature özelliğine doğru koymayabilir; handle() içinde progres bar kullanmayı atlayabilir; test yazmazsa elle doğrulamak gerekir.

En sık gördüğüm sorunlar şunlardır: Ajan $fillable yerine $guarded kullanabilir veya hiç tanımlamaz; bu toplu atama açığı yaratır. Mevcut migration dosyasını günceller veya migrate:fresh çalıştırmayı önerir; geliştirme veritabanında geri dönüşü zor sonuçlar doğurabilir. Laravel sürümüne göre eski Str::slug veya Request::validate kullanımı üretebilir. Ayrıca app/Models altındaki sınıf adlarını import etmeden kullanabilir; php artisan route:list ve composer dump-autoload ile kontrol edin. Blade tarafında component prop’larını yanlış geçirebilir; test veya php artisan view:cache ile sözdizimini doğrulayın. Queue işlerinde dispatch sonrası test için Queue::fake() yerine gerçek kuyruk çalıştırmayı deneyebilir. İlişki kurarken foreignId yerine manuel integer sütun ekleyebilir; migration’da constrained() kullanmasını isteyin. Model factory’lerinde definition() metodunu eksik bırakabilir; test verisi için gerekli tüm alanları eklediğinden emin olun.

Laravel’de test ve doğrulama

Ajan bir değişiklik yaptığında önce hedefe özel testi çalıştırın: ./vendor/bin/pest --filter=CreateOrderTest. Sonra tüm paketi çalıştırın: ./vendor/bin/pest. Kod stili Pint ile zorunluysa ./vendor/bin/pint --test çıktısını isteyin; ajan düzeltme yapabilir. Migration içeren işlerde php artisan migrate:rollback ile geri almayı test ettirin; ardından php artisan migrate ile tekrar uygulayın. php artisan route:list ve php artisan test --coverage gibi komutları görevin parçası yapın. Ajanın ürettiği testlerin gerçekten iddia ettiği davranışı doğruladığını git diff üzerinden gözden geçirin; özellikle assertDatabaseHas ve ilişki testleri yanıltıcı geçebilir. Son olarak php artisan tinker yerine test veya komut kullanmasını isteyin; böylece üretim dışı denemeler tekrarlanabilir olur. Ek doğrulamalar: php artisan view:cache ile Blade hatalarını, php artisan config:cache ile env bağımlılıklarını yakalayın. Queue işlerinde test ortamında QUEUE_CONNECTION=sync ayarıyla job’ların senkron çalışmasını sağlayın; böylece iş mantığı hatalarını testlerde görürsünüz. Migration’ların sırası ve dependency’leri için php artisan migrate:status çıktısını kontrol edin. Ajan bir migration eklediğinde Schema::table ile mevcut tabloyu değiştirmesini, down() metodunda tam geri almayı yazmasını isteyin. Test verisi için factory ve seeder kullanmasını zorunlu tutun; böylece testler taşınabilir kalır.

Aynı projede birden fazla ajan: AgentVera

AgentVera, Gemini CLI ile diğer ajanları aynı pencerede gerçek terminal panellerinde çalıştırır; Laravel projelerinde en kritik özelliği her ajanı kendi git worktree’sine yönlendirebilmesidir. Böylece biri migration ve model düzenlerken diğeri aynı dosyaları ezmez. Ajan sırası bittiğinde ikinci bir modelin yaptığı otomatik kod incelemesi, migration hatalarını dosya:satır bağlantılarıyla gösterir. Checkpoint’ler ise yanlış bir migrate:fresh veya model değişikliğini tek tıkla geri almanızı sağlar; bu Laravel’de hızlı deneme-yanılma için büyük kolaylıktır. Windows’ta kodlama ajanlarını yönetmek: paralel ajanlar sayfasından paralel ajan yönetimini inceleyebilirsiniz.

Sonuç

Gemini CLI’yı Laravel’de etkili kullanmanın yolu, projeyi GEMINI.md ile netleştirmek, görevleri küçük tutmak ve her çıktıyı testlerle doğrulamaktır. Ajan Eloquent, migration, Blade ve queue işlerini hızlandırır; asıl kontrol sizde kalır. Birden fazla ajanı aynı projede koşturacaksanız AgentVera’nın worktree ve checkpoint özellikleri güvenli bir zemin sağlar.

Sık sorulanlar

Gemini CLI Laravel projesinde nasıl başlatılır?

Proje klasöründe terminali açıp gemini komutunu çalıştırın. Ajan, kök dizindeki GEMINI.md dosyasını okur ve sizin verdiğiniz görevlere göre kod üretmeye başlar.

GEMINI.md dosyasına Laravel için neler yazmalıyım?

Build, test ve lint komutlarını, klasör yapısını ve Laravel’e özel kuralları yazın. Örneğin ./vendor/bin/pest, php artisan, $fillable kullanımı ve migration geri alınabilirliği gibi kurallar ajanın doğru çalışmasını sağlar.

Gemini CLI Eloquent modelleri ve migration’ları güvenli şekilde üretebilir mi?

Evet, net talimat verirseniz migration, model ve factory üretebilir. Yine de $fillable, foreign key isimleri ve mevcut migration’ı değiştirmeme gibi noktaları diff üzerinden kontrol edin.

Gemini CLI ile test çalıştırabilir miyim?

Evet, GEMINI.md’de tanımladığınız ./vendor/bin/pest veya php artisan test komutlarını çalıştırabilir. Ajan test sonuçlarına göre hataları düzeltebilir; siz de tam paketi çalıştırıp doğrulayın.

Ajanlarını bir masaya topla.

AgentVera’yı ücretsiz indir; kurulu CLI’ların hazır.

Diğer Gemini CLI rehberleri

Laravel için diğer ajanlar