Laravel Nedir ve Neden Hâlâ Kullanıyorum?
PHP'nin kötü bir dil olduğunu söyleyen insanlar var. PHP framework'lerinin hepsinin aynı olduğunu söyleyenler de. İkisi de yanlış. Laravel, PHP'yi yazılması keyifli bir dile dönüştüren framework — ve ben yıllardır bunu kullanıyorum.
Bu yazıda Laravel'in ne olduğunu, neden tercih ettiğimi ve hangi durumlarda başka bir şey seçeceğimi anlatacağım. Resmi dökümantasyonu tekrar etmek yerine kendi deneyimimden konuşacağım.
Laravel Nedir?
Laravel, Taylor Otwell'in 2011'de başlattığı açık kaynak bir PHP framework'ü. MVC (Model-View-Controller) mimarisini kullanıyor, Composer ile paket yönetimi yapıyor ve "developer happiness" felsefesiyle tasarlanmış.
Yani ne yapıyorsunuz? Bir web uygulaması kurmak için gereken her şeyi — routing, authentication, database, cache, queue, mail, testing — Laravel size hazır veriyor. Siz sadece iş mantığını yazıyorsunuz.
Şu an en güncel sürüm Laravel 12. PHP 8.2+ gerektiriyor.
Neden Laravel?
Yıllar içinde CodeIgniter, Symfony, Yii ve hatta saf PHP ile projeler yaptım. Laravel'de kalmamın sebepleri:
Eloquent ORM
Veritabanıyla konuşmak için SQL yazmak yerine PHP nesneleri kullanıyorsunuz:
// Yayınlanmış yazıları son tarihten ilk tarihe getir
$posts = Post::published()->latest()->get();
// Yeni kayıt oluştur
$user = User::create([
'name' => 'ProjeMan',
'email' => '[email protected]',
'password' => bcrypt('password'),
]);
// İlişkili veriyi çek — tek satır
$user->posts()->where('status', 'published')->get();
Eloquent'in güzel tarafı: basit işlerde basit kalıyor, karmaşık sorgularda Query Builder'a geçebiliyorsunuz. Sizi zorlamıyor.
Artisan CLI
Laravel'in komut satırı aracı. Controller oluşturmak, migration çalıştırmak, cache temizlemek — hepsi bir komutla:
php artisan make:model Post -mfc # Model + Migration + Factory + Controller
php artisan migrate # Tabloları oluştur
php artisan tinker # Interaktif PHP shell
php artisan queue:work # Queue worker başlat
Kendi komutlarınızı da yazabilirsiniz. Cron job'ları, veri import/export scriptleri — hepsini Artisan command olarak yazıyorum. Düzenli, test edilebilir, loglanabilir.
Blade Template Engine
PHP'nin <?php echo ?> karmaşası yerine temiz bir syntax:
@foreach($posts as $post)
<article>
<h2>{{ $post->title }}</h2>
<p>{{ $post->excerpt }}</p>
@if($post->hasImage())
<img src="{{ $post->image_url }}" alt="{{ $post->title }}">
@endif
</article>
@endforeach
{{ }} otomatik XSS koruması sağlıyor (htmlspecialchars). Component sistemiyle tekrar eden UI parçalarını paylaşabiliyorsunuz.
Authentication — 5 Dakikada Hazır
composer require laravel/breeze --dev
php artisan breeze:install
Login, register, şifre sıfırlama, email doğrulama — hepsi hazır. İsterseniz Jetstream veya Fortify kullanın, isterseniz kendiniz yazın. Ama çoğu projede Breeze yeterli.
Queue Sistemi
Ağır işleri arka plana atın:
// Mail'i senkron gönderme, queue'ya at
Mail::to($user)->queue(new WelcomeMail($user));
// PDF oluşturma gibi ağır işleri job'a at
GenerateReport::dispatch($report);
Redis, database, SQS — istediğiniz queue driver'ı seçin. Supervisor ile worker'ı ayakta tutun. Kullanıcı beklemek zorunda kalmaz.
Migration ve Seeder
Veritabanı yapısını code olarak yönetiyorsunuz:
Schema::create('posts', function (Blueprint $table) {
$table->id();
$table->string('title');
$table->string('slug')->unique();
$table->longText('content');
$table->enum('status', ['draft', 'published']);
$table->timestamps();
});
php artisan migrate ile tablo oluşur, php artisan migrate:rollback ile geri alırsınız. Ekip çalışmasında herkesin veritabanı aynı yapıda kalır. El ile SQL çalıştırma devri bitti.
Ekosistem: Sadece Framework Değil
Laravel'in asıl gücü etrafındaki ekosistem:
- Forge — Sunucu yönetimi ve deploy (DigitalOcean, AWS, Linode)
- Vapor — Serverless deploy (AWS Lambda üzerinde Laravel)
- Nova — Admin panel oluşturucu
- Horizon — Redis queue monitoring
- Telescope — Debug ve monitoring aracı
- Pulse — Gerçek zamanlı uygulama performans izleme (application health dashboard)
- Reverb — WebSocket server (gerçek zamanlı bildirimler)
- Sanctum — API token authentication
- Cashier — Stripe/Paddle ödeme entegrasyonu
Bunların hepsi resmi paket. Community tarafında da Spatie, Filament, Livewire gibi devasa kütüphaneler var.
Dürüst Olmak Gerekirse: Dezavantajlar
Her framework gibi Laravel de her şey için doğru seçim değil:
Performans: Saf PHP veya Swoole tabanlı framework'lerden (FrankenPHP, RoadRunner) yavaş. Ama çoğu projenin ihtiyacı olan performansı rahatlıkla karşılıyor. Gerçek darboğaz genellikle veritabanı sorgularınız, framework değil.
"Magic" fazlalığı: Facade'lar, auto-discovery, implicit binding — Laravel çok şeyi arka planda yapıyor. Yeni başlayanlar "nasıl çalışıyor?" sorusunu cevaplayamıyor. Bu bazen debug'u zorlaştırıyor.
Opinionated: Laravel bir şeyleri kendi yöntemiyle yapmak istiyor. Bu yöntemin dışına çıkmak zor değil ama framework'le savaşıyormuşsunuz gibi hissettiriyor.
Hosting: Shared hosting'de çalıştırmak mümkün ama acı verici. VPS veya cloud sunucu öneriyorum.
Ne Zaman Laravel, Ne Zaman Başka Bir Şey?
Laravel seçin:
- Web uygulaması, CMS, SaaS, e-ticaret, admin panel
- Hızlı prototip ve MVP
- Ekip çalışması (convention'lar açık, öğrenmesi kolay)
- Full-stack proje (Blade + Livewire veya API + SPA)
Başka bir şey seçin:
- Yüksek performans gerektiren microservice → Go, Rust
- Real-time heavy uygulama → Node.js, Elixir
- Basit API gateway → Lumen (artık geliştirilmiyor), Slim PHP
- Mobile-first → Flutter/React Native + herhangi bir API backend
Ben API-only projeler için bile Laravel kullanıyorum çünkü Eloquent, Queue, Notification sistemi çok işime yarıyor. Ama her şeyi Laravel ile çözmek zorunda değilsiniz.
Laravel ile Neler Yapılır?
Kısa cevap: PHP ile yapılabilecek her şey. Uzun cevap — şu tarz projelerde sıkça kullanılıyor:
- E-ticaret siteleri ve marketler
- SaaS uygulamaları
- İçerik yönetim sistemleri (CMS)
- Kurumsal portallar ve iç araçlar
- API backend (mobil uygulama, SPA)
- Blog ve kişisel siteler
- Proje yönetim araçları
BBC, Pfizer, 9GAG, Invoice Ninja, Laracasts — hepsi Laravel üzerinde çalışıyor.
Öğrenme Yol Haritası
Laravel öğrenmek istiyorsanız sıra önemli:
- PHP temelleri — OOP, namespace, composer bilmeden Laravel'e girmeyin
- Resmi dökümantasyon — laravel.com/docs en iyi kaynak
- Laracasts — Jeffrey Way'in video dersleri, ücretsiz bölümü bile çok iyi
- Küçük proje yapın — Todo app, blog, basit CRUD. Teoriyle kalmasın
- Gerçek proje yapın — Kendi ihtiyacınız olan bir şey. Öğrenmenin en iyi yolu ihtiyaç
Kitap önerisi: Matt Stauffer'ın "Laravel Up & Running" kitabı kapsamlı ve güncel tutuluyor.
Sonuç
Laravel, PHP dünyasının en iyi framework'ü mü? Bence evet — ama bu subjektif bir görüş. Symfony daha enterprise, CodeIgniter daha hafif, Slim daha minimal. Her birinin yeri var.
Laravel'i sevmemin asıl sebebi: yazılım geliştirmeyi eğlenceli kılıyor. İyi tasarlanmış API'ler, tutarlı convention'lar, zengin ekosistem. Bir şeyi yapmak istediğinizde framework ile savaşmak yerine framework'le birlikte çalışıyorsunuz.
10 yıl sonra hâlâ kullanıyor olacak mıyım? Bilmiyorum. Ama şu an için en verimli olduğum araç bu — ve o yüzden kullanmaya devam ediyorum.