GitHub Copilot CLI’yi Laravel projenizde kullanmak, terminalde proje kök dizininde copilot komutuyla başlar. Bu rehber, ajana proje bağlamını nasıl vereceğinizi, tipik Laravel görevlerini nasıl yöneteceğinizi ve test döngüsünü nasıl kuracağınızı pratik olarak anlatır. Laravel’in komut satırı merkezli yapısı ve Copilot CLI’nin terminal odaklı çalışması iyi bir uyum sağlar; böylece ajan gerçek proje dosyaları üzerinde etkili olur.
GitHub Copilot CLI Neden Laravel İşleri İçin Uygun?
Laravel, geliştirme sürecinin büyük kısmını terminalde yönetir: php artisan komutları, composer ile paket yönetimi, pint ile kod formatlama, phpunit veya pest ile test çalıştırma. GitHub Copilot CLI de aynı ortamda çalıştığı için proje yapısını doğrudan okuyabilir, dosyaları değiştirebilir ve komutları çalıştırarak sonuçları yorumlayabilir. Özellikle migration, model, controller, test gibi birbirine bağlı dosyaları birlikte üretme görevlerinde etkilidir. Ajan, composer.json ve phpunit.xml gibi yapılandırma dosyalarını okuyarak projenin test ve bağımlılık kurallarını anlar; siz de talimat dosyasıyla ona ek bağlam sağlayabilirsiniz. Laravel’in standart klasör yapısı (app/Models, app/Http/Controllers, database/migrations) ajanın doğru yerde dosya oluşturmasını kolaylaştırır. Ayrıca Artisan komutlarının üretilmesi, route tanımlarının güncellenmesi ve middleware eklenmesi gibi tekrarlayan işlerde ajan hızlı ve tutarlı sonuçlar verir. Daha fazla bilgi için GitHub Copilot CLI sayfasına göz atabilirsiniz.
Projeyi Ajan İçin Hazırlama: Talimat Dosyası
GitHub Copilot CLI, proje kökündeki .github/copilot-instructions.md veya AGENTS.md dosyasını okur. Laravel projesi için bu dosyaya build, test, lint komutları, klasör kuralları ve çerçeveye özgü kurallar yazın. Bu, her oturumda tekrar tekrar bağlam vermekten kurtarır ve tutarlılık sağlar. Dosya kısa ve öz olmalı; genel geçer kurallar yerine bu projeye özel kararları içermelidir. Örneğin, projenizde Pest kullanıyorsanız bunu belirtin; ajan yanlışlıkla PHPUnit tarzı test üretmesin. Aynı şekilde, formatter olarak Pint kullanılıyorsa komutları yazın. Aşağıda gerçekçi bir örnek verilmiştir. Detaylı açıklama için Copilot CLI nasıl kullanılır? rehberine bakın.
# Laravel Proje Talimatları
## Komutlar
- Kurulum: `composer install`
- Test: `php artisan test` (Pest kullanılıyor)
- Lint: `vendor/bin/pint --test`
- Format: `vendor/bin/pint`
- Static analiz: `vendor/bin/phpstan analyse --memory-limit=2G`
## Klasör Kuralları
- Modeller `app/Models` altında, tekil isimle.
- Migration'lar `database/migrations` altında, açıklayıcı adlarla.
- Form Request'ler `app/Http/Requests` klasöründe.
- Service sınıfları `app/Services` altında, arayüz uygulamasıyla.
## Laravel Kuralları
- Eloquent modellerinde `$fillable` tanımla; toplu atamada `$guarded` kullanma.
- İlişkilerde eager loading yap; N+1 oluşturma.
- Kontrolörler ince olsun; iş mantığını Service veya Action sınıflarına taşı.
- Migration'lar geri alınabilir olsun; `down()` metodunu doldur.
- Queue job'ları için `ShouldQueue` arayüzünü kullan.
- Testlerde `RefreshDatabase` trait'ini kullan; factory'leri model başına oluştur.
Bu dosya, ajanın Laravel projesinin kurallarını hatırlamasını sağlar. Ayrıca AGENTS.md yazımıyla ilgili ipuçları için CLAUDE.md nasıl yazılır? rehberine bakabilirsiniz. Talimat dosyasını projenin başında oluşturun ve ekip kararları değiştikçe güncelleyin; örneğin, yeni bir formatter benimsendiğinde veya test çerçevesi değiştiğinde dosyayı düzenleyin. Kısa ama spesifik olmak, ajanın doğru kararlar vermesine yardımcı olur.
Çalışma Döngüsü ve Örnek Promptlar
Copilot CLI ile verimli çalışmak için şu döngüyü izleyin: önce görevi net bir şekilde tanımlayın, sonra ajanın küçük bir değişiklik yapmasını isteyin, ardından testleri çalıştırın ve son olarak git diff ile değişiklikleri inceleyin. Tek seferde büyük bir özellik istemek yerine adım adım ilerlemek hata ayıklamayı kolaylaştırır. Her adımda ajanın ne yaptığını anlamak için ona açıklama yaptırabilirsiniz. İşte tipik Laravel görevleri için örnek promptlar (liste):
- “Yeni bir
Postmodeli oluştur, migration’ını yaz vetitle,body,user_idalanlarını ekle.UserilebelongsToilişkisi kur.” - “
Postmodeli için factory oluştur vePostTestadında bir Pest testi yaz; temel CRUD’u test et,RefreshDatabasekullan.” - “
SendWelcomeEmailadında bir queued job oluştur,ShouldQueueimplement et veUserkaydı sonrası dispatch et.” - “Blade bileşenlerini refactor et:
resources/views/componentsaltındaki form alanlarını tekrar kullanılabilir bileşenlere ayır.” - “
php artisan testçalıştır, hataları listele ve sırayla düzelt.”
Bu promptlarla ajan, Laravel’in yapı taşlarını doğru kullanacaktır. Ancak her adımdan sonra testleri çalıştırmayı ve değişiklikleri gözden geçirmeyi unutmayın. Gerekirse ajanın önerdiği değişiklikleri kısmen uygulayın veya geri alın. git diff çıktısını okuyarak beklenmeyen dosya değişikliklerini yakalayın. Ajan, bazen yan etki olarak ilgili olmayan dosyaları da düzenleyebilir; bu yüzden diff incelemesi kritiktir.
Hangi Görevlerde İyi, Nerelerde Dikkatli Olmalı
GitHub Copilot CLI, boilerplate üretiminde çok başarılıdır: migration, model, controller, Form Request, policy, test ve Artisan komutu oluşturma. Ayrıca mevcut kodun refactor edilmesi, eksik testlerin yazılması ve basit hata düzeltmeleri için uygundur. Ancak Laravel’in bazı incelikleri ajanın gözünden kaçabilir; üretilen kodu her zaman inceleyin. Aşağıdaki tablo, sık karşılaşılan tuzakları ve dikkat edilecek noktaları özetler:
| Görev | Dikkat Edilecek Nokta |
|---|---|
| Migration oluşturma | down() metodunu eksik bırakabilir; geri alınabilirliği kontrol edin. |
| Eloquent ilişkileri | Eager loading yapmadan N+1 sorgu oluşturabilir; with() kullanımını denetleyin. |
| Mass assignment | $fillable yerine $guarded = [] önerebilir; güvenlik açığına yol açar. |
| Queue job’ları | Job’ı dispatch etmeyi unutabilir veya tries/timeout ayarlarını atlayabilir. |
| Form Request validasyonu | Kural eklemeyi unutabilir veya authorize() metodunu yanlış doldurabilir. |
| Cache kullanımı | Cache invalidation’ı atlayabilir; model güncellemelerinde cache temizlemeyi unutabilir. |
Bu tuzaklara karşı ajanın ürettiği kodu inceleyin; özellikle güvenlik ve performans açısından Laravel’in best practice’lerine uygunluğunu kontrol edin. Örneğin, ilişkilerde with() kullanımı, controller’larda ince yapı, Form Request’te yetkilendirme gibi konulara dikkat edin. Ayrıca ajan, middleware tanımlarını yanlış sıraya koyabilir veya route model binding kullanırken tip belirtmeyi unutabilir. Policy sınıflarında before metodunu atlayabilir. Bu yüzden üretilen kodun Laravel konvansiyonlarına uygunluğunu manuel olarak doğrulayın.
Test Etme ve Doğrulama
Laravel’de test, Copilot CLI ile çalışmanın ayrılmaz parçasıdır. Ajan testleri oluşturabilir, mevcut testleri çalıştırabilir ve hataları düzeltebilir. Çalışma döngüsünde her değişiklikten sonra php artisan test veya pest komutunu çalıştırın. Ajanın test çıktılarını yorumlamasını isteyebilirsiniz: “Testler başarısız, hata mesajlarını oku ve düzelt” gibi. Ayrıca yeni özellik eklerken test-first yaklaşımı uygulayın: önce testi yazdırın, sonra implementasyonu yaptırın. Bu, ajanın doğru API tasarımını benimsemesine yardımcı olur.
Testlerde RefreshDatabase trait’i migration’ları her testte tazeler, factory’ler veri oluşturmayı kolaylaştırır. Ajanın bu araçları kullanmasını sağlayın. Ayrıca --filter ile tek test çalıştırarak hızlı geri bildirim alın. Büyük test suite’lerinde paratest gibi paralel çalıştırma araçları kullanıyorsanız, ajanın bu komutu bilmesini talimat dosyasına ekleyin. Son olarak, ajanın ürettiği testlerin anlamlı olduğundan emin olun; sadece boş geçen testler veya yanlış assertion’lar üretebilir. Her testin gerçekten beklenen davranışı doğruladığını kontrol edin. Ayrıca spec odaklı geliştirme hakkında daha fazla bilgi için Yapay zekâ ajanlarıyla spec odaklı geliştirme rehberi yazısına göz atabilirsiniz.
Laravel Projesinde Birden Fazla Ajan Çalıştırma: AgentVera
Birden fazla ajanı aynı Laravel projesinde paralel çalıştırmak gerektiğinde AgentVera masaüstü uygulaması işe yarar. Özellikle her ajanın kendi git worktree’sinde çalışabilmesi, dosya çakışmalarını önler; böylece biri migration üzerinde çalışırken diğeri test yazabilir. Ajanın turu bittiğinde ikinci bir model otomatik kod incelemesi yapar; bu, Laravel’e özgü hataları yakalamada ek güvenlik sağlar. Ayrıca her turun snapshot’ı alınır ve tek tıkla geri alınabilir; yanlış bir migration veya model değişikliğini hızla geri döndürmek için kritiktir. Token bütçeleri ise maliyet kontrolü sağlar. Bu özellikler, Laravel’in çok dosyalı yapısında paralel çalışmayı güvenli kılar.
GitHub Copilot CLI, Laravel projelerinde terminal odaklı iş akışını benimseyen geliştiriciler için pratik bir yardımcıdır. Doğru talimat dosyası, küçük adımlı çalışma döngüsü ve sürekli test ile ajanın üretkenliğini artırabilirsiniz. Ancak üretilen kodu her zaman gözden geçirin; Laravel’in güvenlik ve performans kurallarına uygunluğu sizin sorumluluğunuzdadır.