- Katılım
- 5 Haz 2025
- Mesajlar
- 15
- Tepkime puanı
- 2
- Puanları
- 3
Laravel Başlangıç Rehberi
Laravel, PHP ile modern web uygulamaları geliştirmek için kullanılan en popüler framework'lerden biridir.Laravel sayesinde:
- Yönetim panelleri
- Üyelik sistemleri
- API servisleri
- E-ticaret projeleri
- Kurumsal web uygulamaları
- SaaS sistemleri
PHP temellerini öğrendikten sonra framework mantığına geçmek isteyenler için Laravel oldukça güçlü bir seçenektir.
Laravel Nedir?
Laravel, PHP üzerine kurulmuş bir web uygulama framework'üdür.Framework, uygulama geliştirirken tekrar tekrar ihtiyaç duyulan birçok yapıyı hazır sunar.
Örneğin:
- Routing
- Veritabanı işlemleri
- Form doğrulama
- Kullanıcı doğrulama
- Session
- Cache
- Queue
Framework Nedir?
Framework, yazılım geliştirirken belirli kuralları ve hazır yapıları kullanmanızı sağlayan geliştirme çatısıdır.Her şeyi sıfırdan yazmak yerine framework'ün sunduğu araçlardan faydalanırsınız.
Bu sayede proje:
- Daha düzenli
- Daha hızlı geliştirilebilir
- Daha kolay bakım yapılabilir
Laravel Öğrenmeden Önce Ne Bilmek Gerekir?
Laravel'e başlamadan önce temel PHP bilgisi çok önemlidir.En azından şu konular bilinmelidir:
- Değişkenler
- Veri türleri
- Koşullar
- Döngüler
- Array
- Fonksiyonlar
- Form işlemleri
- GET ve POST
- Session
- Temel SQL
- OOP
HTML ve CSS Bilmek Gerekir mi?
Evet.Laravel web uygulamaları geliştirirken frontend tarafında:
- HTML
- CSS
- JavaScript
Çok ileri seviye frontend bilmek gerekmez ancak temel yapıların bilinmesi faydalıdır.
JavaScript Bilmek Şart mı?
Başlangıç için şart değildir.Ancak modern Laravel projelerinde:
- AJAX
- Fetch
- Frontend framework'leri
- Dinamik arayüzler
Laravel Ne İşe Yarar?
Laravel ile birçok farklı proje geliştirilebilir.Örneğin:
- Blog sistemi
- Yönetim paneli
- Üyelik sistemi
- REST API
- Stok takip
- Sipariş sistemi
- CRM
- Destek sistemi
Laravel Neden Tercih Edilir?
Başlıca avantajları:- Düzenli proje yapısı
- Geniş topluluk
- Hazır araçlar
- Güçlü veritabanı desteği
- Güvenlik özellikleri
- MVC mimarisi
- Paket ekosistemi
Laravel PHP'nin Yerine mi Geçer?
Hayır.Laravel PHP ile yazılmıştır.
Bu nedenle:
PHP bilmeden Laravel bilmek
sağlam bir temel oluşturmaz.
Laravel, PHP'yi daha düzenli ve hızlı kullanmanızı sağlar.
Laravel Kurmak İçin Ne Gerekir?
Genel olarak:- PHP
- Composer
- Veritabanı
- Web sunucusu
- Terminal erişimi
Geliştirme ortamında:
- Windows
- Linux
- macOS
Composer Nedir?
Composer, PHP paketlerini ve bağımlılıklarını yönetmek için kullanılan araçtır.Laravel kurulumu ve paket yönetiminde çok önemlidir.
Composer Neden Gerekir?
Laravel birçok farklı PHP paketinden oluşur.Composer bu paketlerin:
- Kurulmasını
- Güncellenmesini
- Sürümlerinin yönetilmesini
Laravel Projesi Nasıl Oluşturulur?
Genel mantık:- PHP ortamı hazırlanır.
- Composer kurulur.
- Laravel projesi oluşturulur.
- Ortam ayarları yapılır.
- Veritabanı bağlantısı tanımlanır.
- Geliştirme sunucusu çalıştırılır.
Localhost Üzerinde Laravel
Laravel öğrenirken canlı hosting yerine kendi bilgisayarınızda geliştirme ortamı kurmak daha mantıklıdır.Kullanılabilecek yöntemler:
- Laragon
- XAMPP
- Docker
- PHP'nin yerel geliştirme ortamı
Laragon Laravel İçin Uygun mu?
Evet.Özellikle Windows kullanıcıları için:
- PHP
- MySQL
- Web server
- Composer
Docker ile Laravel Kullanılır mı?
Evet.Laravel projeleri Docker ortamında da çalıştırılabilir.
Ancak Laravel'e yeni başlayan biri için aynı anda hem Docker hem Laravel öğrenmek gereksiz kafa karışıklığı oluşturabilir.
Önce Laravel mantığını öğrenmek daha kolay olabilir.
Laravel Proje Yapısı
Laravel projesinde farklı görevler için ayrı klasörler bulunur.Örneğin:
- Uygulama mantığı
- Routes
- Views
- Database
- Config
- Public dosyalar
- Storage
app Klasörü
Uygulamanın ana iş mantığının önemli bir bölümü burada bulunur.Örneğin:
- Modeller
- Controller'lar
- Servisler
routes Klasörü
Uygulamanın URL yönlendirmeleri burada tanımlanır.Bir kullanıcının hangi URL'ye girdiğinde hangi işlemin çalışacağı route sistemiyle belirlenir.
resources Klasörü
Frontend ile ilgili:- View
- CSS
- JavaScript
public Klasörü
Web sunucusunun dışarıya açması gereken ana klasördür.Burada:
- index
- CSS çıktıları
- JavaScript çıktıları
- Görseller
storage Klasörü
Uygulamanın:- Log
- Cache
- Geçici dosya
- Upload
database Klasörü
Veritabanıyla ilgili:- Migration
- Seeder
- Factory
config Klasörü
Laravel'in farklı yapılandırma ayarlarını içerir.Örneğin:
- Cache
- Database
- Session
.env Dosyası Nedir?
Laravel projesinin ortama özel ayarlarını tutar.Örneğin:
- Veritabanı adı
- Veritabanı kullanıcı adı
- Parola
- Mail ayarları
- Uygulama URL'si
.env Dosyası Paylaşılır mı?
Hayır.Çünkü içerisinde hassas bilgiler bulunabilir.
Özellikle GitHub gibi public repository'lere yüklenmemelidir.
APP_KEY Nedir?
Laravel uygulamasında bazı güvenlik ve şifreleme işlemleri için kullanılan özel uygulama anahtarıdır.Her proje için doğru şekilde oluşturulmalıdır.
APP_ENV Nedir?
Uygulamanın hangi ortamda çalıştığını belirtmek için kullanılabilir.Örneğin:
- Local
- Production
APP_DEBUG Nedir?
Hata detaylarının gösterilip gösterilmeyeceğini etkiler.Geliştirme ortamında detaylı hata görmek faydalıdır.
Canlı sistemde debug açık bırakılmamalıdır.
Debug Neden Production'da Kapatılmalı?
Detaylı hata mesajları:- Dosya yolları
- Uygulama yapısı
- Veritabanı bilgileri
Bu nedenle production ortamında kapalı olmalıdır.
MVC Nedir?
Laravel'de en önemli kavramlardan biridir.MVC:
- Model
- View
- Controller
Model Nedir?
Veritabanı ve uygulama verileriyle ilişkili katmandır.Örneğin:
- User
- Product
- Order
View Nedir?
Kullanıcının gördüğü arayüzdür.HTML çıktısı burada hazırlanabilir.
Controller Nedir?
Kullanıcı isteği ile uygulamanın iş mantığı arasında bağlantı kurar.Örneğin:
- Veriyi alır
- Modeli kullanır
- Sonucu view'a gönderir
MVC Neden Önemlidir?
Kodun farklı sorumluluklara ayrılmasını sağlar.Böylece:
- HTML
- Veritabanı
- İş mantığı
Route Nedir?
Belirli URL'ye gelen isteğin hangi işlemi çalıştıracağını belirler.Örneğin:
- Ana sayfa
- Kullanıcı profili
- Ürünler
- Yönetim paneli
GET Route
Genellikle veri görüntülemek için kullanılır.Örneğin:
- Ürün listesi
- Blog yazısı
- Profil
POST Route
Genellikle yeni veri göndermek için kullanılır.Örneğin:
- Kayıt ol
- Form gönder
- Sipariş oluştur
PUT ve PATCH
Mevcut bir verinin güncellenmesi için kullanılabilir.DELETE
Bir kaydı silme işlemlerinde kullanılabilir.REST Mantığı
Laravel uygulamalarında route'lar REST yaklaşımına göre tasarlanabilir.Örneğin ürün üzerinde:
- Listele
- Göster
- Oluştur
- Güncelle
- Sil
Controller Kullanmak
Başlangıçta route içerisinde küçük işlemler yapılabilir.Ancak proje büyüdükçe işlemleri controller'a taşımak daha düzenlidir.
Resource Controller Nedir?
CRUD işlemleri için belirli standart method yapısını takip eden controller türüdür.Özellikle:
- Ürün
- Kullanıcı
- Kategori
Blade Nedir?
Laravel'in template sistemidir.HTML sayfalarını daha düzenli ve dinamik hazırlamaya yardımcı olur.
Blade Ne İşe Yarar?
Blade ile:- Değişken gösterme
- Koşul kullanma
- Döngü oluşturma
- Ortak layout kullanma
Layout Nedir?
Sitenin tekrar kullanılan ana tasarım yapısıdır.Örneğin:
- Header
- Menü
- Footer
Blade Component Nedir?
Tekrar kullanılan arayüz parçalarının bileşen haline getirilmesini sağlar.Örneğin:
- Buton
- Kart
- Alert
- Form alanı
Eloquent ORM Nedir?
Laravel'in veritabanıyla nesne tabanlı şekilde çalışmasını sağlayan ORM sistemidir.ORM:
Object Relational Mapping
anlamına gelir.
Eloquent Ne Sağlar?
Veritabanı tablolarıyla PHP object mantığında çalışmayı kolaylaştırır.Örneğin:
- Kullanıcı bulma
- Ürün ekleme
- Sipariş güncelleme
ORM SQL Öğrenme İhtiyacını Kaldırır mı?
Hayır.Laravel kullanırken temel SQL bilmek yine çok önemlidir.
Özellikle:
- Performans
- Join
- Index
- Karmaşık sorgular
Migration Nedir?
Veritabanı tablo yapısının kod tarafında tanımlanmasını sağlar.Örneğin:
- Users tablosu
- Products tablosu
- Orders tablosu
Migration Neden Önemlidir?
Takım halinde çalışırken herkesin aynı veritabanı yapısını oluşturmasını kolaylaştırır.Ayrıca veritabanı değişikliklerinin geçmişi takip edilebilir.
Migration ile Veri Silinebilir mi?
Evet.Yanlış migration işlemleri veri kaybına neden olabilir.
Özellikle production ortamında dikkatli kullanılmalıdır.
Seeder Nedir?
Veritabanına başlangıç veya test verileri eklemeye yardımcı olur.Örneğin:
- Admin kullanıcı
- Kategoriler
- Test ürünleri
Factory Nedir?
Test veya geliştirme amacıyla sahte veriler üretmeye yardımcı olur.Örneğin yüzlerce test kullanıcısı oluşturulabilir.
Model Relationship Nedir?
Veritabanındaki tablolar arasındaki ilişkileri Laravel model seviyesinde tanımlamayı sağlar.One to One
Bir kaydın başka bir kayıtla birebir ilişkisini ifade eder.One to Many
Bir kaydın birden fazla kayıtla ilişkisini ifade eder.Örneğin:
Bir kategori → Birçok ürün
Many to Many
İki tarafın da birden fazla kayıtla ilişki kurmasını sağlar.Örneğin:
Bir kullanıcı birçok role sahip olabilir, bir rol birçok kullanıcıya atanabilir.
Pivot Table Nedir?
Many to many ilişkilerde iki tablo arasındaki bağlantıları tutan ara tablodur.Validation Nedir?
Kullanıcıdan gelen verinin kurallara uygun olup olmadığını kontrol eder.Örneğin:
- E-posta geçerli mi?
- Alan boş mu?
- Şifre yeterince uzun mu?
- Sayı beklenen aralıkta mı?
Validation Neden Önemlidir?
Hem kullanıcı deneyimi hem güvenlik için gereklidir.Kullanıcıdan gelen hiçbir veri doğrudan güvenilir kabul edilmemelidir.
Form Request Nedir?
Validation kurallarını controller'dan ayırarak daha düzenli hale getirmeye yardımcı olan Laravel yapılarından biridir.Büyük projelerde oldukça kullanışlıdır.
CSRF Koruması
Laravel web formlarında CSRF saldırılarına karşı koruma mekanizması sunar.Form gönderimlerinde uygun CSRF doğrulaması kullanılmalıdır.
CSRF Nedir?
Kullanıcının haberi olmadan onun aktif oturumu kullanılarak işlem yapılmaya çalışılmasıdır.Özellikle:
- Şifre değiştirme
- Profil güncelleme
- Sipariş oluşturma
Authentication Nedir?
Kullanıcının kim olduğunu doğrulamaktır.Örneğin:
- Login
- Logout
- Kayıt
Authorization Nedir?
Kullanıcının hangi işlemleri yapabileceğini belirler.Örneğin normal kullanıcı admin sayfasına girememelidir.
Middleware Nedir?
HTTP isteği uygulamaya ulaşmadan önce veya cevap dönmeden önce araya girerek kontrol yapabilen yapıdır.Örneğin:
- Kullanıcı giriş yapmış mı?
- Admin mi?
- İstek belirli kurala uyuyor mu?
Auth Middleware
Belirli sayfalara sadece giriş yapmış kullanıcıların erişmesini sağlamak için kullanılabilir.Admin Middleware
Özel oluşturulan yetkilendirme mantığıyla sadece yönetici kullanıcıların belirli sayfalara erişmesi sağlanabilir.Ancak yalnızca menüyü gizlemek yeterli değildir.
Backend tarafında gerçek yetki kontrolü yapılmalıdır.
Policy Nedir?
Belirli model veya kaynak üzerinde kullanıcının hangi işlemleri yapabileceğini yönetmeye yardımcı olur.Örneğin:
Bu kullanıcı bu yazıyı silebilir mi?
kontrol edilebilir.
Gate Nedir?
Yetkilendirme işlemleri için kullanılabilecek başka bir Laravel mekanizmasıdır.Küçük ve belirli izin kontrollerinde tercih edilebilir.
Session
Kullanıcının uygulama içindeki oturum bilgilerini tutmaya yardımcı olur.Örneğin:
- Login durumu
- Geçici mesaj
- Sepet
Flash Message Nedir?
Bir sonraki istekte gösterilip daha sonra silinen geçici session bilgisidir.Örneğin:
Kayıt başarıyla oluşturuldu.
mesajı gösterilebilir.
Cache Nedir?
Sık kullanılan verilerin tekrar tekrar oluşturulmasını veya sorgulanmasını azaltarak performansı artırabilir.Laravel farklı cache sistemleriyle çalışabilir.
Redis Laravel ile Kullanılır mı?
Evet.Redis:
- Cache
- Session
- Queue
Queue Nedir?
Uzun süren işlemlerin kullanıcının isteğini bekletmeden sıraya alınmasını sağlar.Örneğin:
- E-posta gönderme
- Görsel işleme
- Rapor oluşturma
Queue Worker Nedir?
Sıraya eklenen işleri arka planda işleyen process'tir.Production ortamında worker'ların sürekli çalışması ve izlenmesi gerekir.
Supervisor Nedir?
Linux üzerinde uzun süre çalışan process'lerin yönetilmesine yardımcı olan araçlardan biridir.Laravel queue worker'larını sürekli çalıştırmak için kullanılabilir.
Scheduler Nedir?
Laravel içerisinde zamanlanmış görevlerin yönetilmesini kolaylaştırır.Örneğin:
- Günlük rapor
- Eski kayıt temizleme
- Otomatik bildirim
Cron ile Laravel Scheduler
Sunucu üzerinde bir cron görevi Laravel scheduler'ı düzenli olarak tetikleyebilir.Gerçek görev zamanlamaları Laravel tarafında yönetilebilir.
Mail Gönderimi
Laravel:- SMTP
- Harici e-posta servisleri
Örneğin:
- Şifre sıfırlama
- Sipariş bildirimi
- Üyelik doğrulama
SMTP Ayarları
Mail bağlantı bilgileri genellikle environment ayarlarında tutulur.Şifreler public repository'ye yüklenmemelidir.
Notification Sistemi
Laravel ile kullanıcıya farklı kanallardan bildirim gönderme yapıları oluşturulabilir.Örneğin:
- E-posta
- Veritabanı bildirimi
File Upload
Kullanıcıların:- Profil fotoğrafı
- Belge
- Ürün görseli
Dosya Upload Güvenliği
Kullanıcıdan gelen dosyalar:- Dosya türü
- Boyut
- Yetki
Dosya uzantısına tek başına güvenilmemelidir.
Storage Sistemi
Laravel dosyaları farklı depolama sistemlerinde yönetebilir.Örneğin:
- Local disk
- Public storage
- Cloud storage
Public Storage
Kullanıcıların web üzerinden erişmesi gereken dosyalar için kullanılabilir.Hassas dosyalar public erişime açılmamalıdır.
Laravel API Geliştirme
Laravel ile REST API geliştirmek oldukça yaygındır.API üzerinden:
- Mobil uygulama
- Frontend uygulaması
- Başka servis
API Resource Nedir?
Model verilerinin API çıktısında nasıl gösterileceğini düzenlemeye yardımcı olur.Bu sayede istemciye gereksiz veriler gönderilmez.
JSON Response
API'lerde çoğunlukla JSON formatı kullanılır.Laravel JSON cevapları oluşturmayı kolaylaştırır.
API Authentication
API kullanıcılarının veya uygulamaların kimliğini doğrulamak için farklı yöntemler kullanılabilir.Laravel ekosisteminde token tabanlı çözümler bulunur.
Laravel Sanctum Nedir?
Basit token tabanlı API doğrulaması ve bazı SPA authentication senaryoları için kullanılan Laravel paketlerinden biridir.Laravel Passport Nedir?
OAuth2 tabanlı daha kapsamlı yetkilendirme ihtiyaçları için kullanılabilen çözümlerden biridir.Her projede Passport kullanmak gerekli değildir.
Sanctum mu Passport mu?
Basit API ve SPA projelerinde Sanctum daha kolay olabilir.Tam OAuth2 sunucusu gerekiyorsa Passport değerlendirilebilir.
İhtiyaçtan fazla karmaşık sistem kullanılmamalıdır.
Laravel ile Frontend
Laravel yalnızca backend değildir.Blade kullanılarak klasik server-rendered web uygulamaları geliştirilebilir.
Ayrıca Laravel backend olarak kullanılıp frontend tarafında:
- React
- Vue
Blade mi React mi?
Proje ihtiyacına göre değişir.Basit:
- Yönetim paneli
- Kurumsal uygulama
- Blog
Çok etkileşimli frontend gerekiyorsa React veya Vue düşünülebilir.
Laravel Livewire Nedir?
PHP ağırlıklı çalışarak dinamik web arayüzleri geliştirmeyi kolaylaştıran Laravel ekosistemi araçlarından biridir.JavaScript'i tamamen ortadan kaldırmaz ancak birçok etkileşimi PHP üzerinden daha kolay yönetmeyi sağlayabilir.
Alpine.js Nedir?
Küçük frontend etkileşimleri için kullanılan hafif JavaScript araçlarından biridir.Laravel ve Livewire projelerinde sık görülebilir.
Vite Nedir?
Modern Laravel projelerinde frontend asset'lerini:- CSS
- JavaScript
npm Laravel'de Neden Var?
Laravel PHP framework'ü olsa da frontend paketleri için npm kullanılabilir.Örneğin:
- CSS
- JavaScript
- Frontend kütüphaneleri
NPM Bilmek Şart mı?
Başlangıç Laravel için çok ileri seviyede bilmek gerekmez.Ancak modern frontend entegrasyonları için temel npm bilgisi faydalıdır.
Laravel Güvenli mi?
Laravel güvenlik konusunda birçok hazır özellik sunar.Örneğin:
- CSRF koruması
- Validation
- Password hashing
- ORM
Ancak framework kullanmak uygulamanın otomatik olarak güvenli olduğu anlamına gelmez.
SQL Injection
Eloquent ve güvenli query builder kullanımı SQL Injection riskini azaltabilir.Ancak kontrolsüz raw query kullanımında yine dikkat edilmelidir.
XSS
Blade'in standart çıktı mekanizmaları bazı durumlarda kullanıcı içeriğini güvenli şekilde escape etmeye yardımcı olur.Ancak raw HTML çıktısı kullanılırken çok dikkatli olunmalıdır.
Parola Saklama
Kullanıcı parolaları düz metin olarak saklanmamalıdır.Laravel'in güvenli parola hashing araçları kullanılmalıdır.
Yetkilendirme Kontrolü
Sadece frontend üzerinde:Admin butonunu gizlemek
güvenlik değildir.
Controller, route veya policy seviyesinde gerçek yetki kontrolü yapılmalıdır.
Mass Assignment Nedir?
Model üzerinde toplu veri ataması sırasında kullanıcının değiştirmemesi gereken alanları değiştirebilmesi riskidir.Modelin hangi alanlarının toplu şekilde doldurulabileceği kontrollü olmalıdır.
Rate Limiting
Belirli route veya API isteklerinin ne kadar sık yapılabileceğini sınırlandırabilir.Özellikle:
- Login
- API
- Şifre sıfırlama
Laravel Logları
Uygulamada meydana gelen hatalar loglarda tutulabilir.Production sorunlarını araştırırken oldukça önemlidir.
Log Dosyaları Büyür mü?
Evet.Yoğun uygulamalarda log dosyaları çok büyüyebilir.
Log rotation ve saklama politikası oluşturulmalıdır.
Laravel Hata Sayfası
Production ortamında kullanıcıya detaylı hata bilgisi yerine genel hata sayfası gösterilmelidir.Teknik ayrıntılar loglarda tutulmalıdır.
Laravel Performansı
Laravel güçlü bir framework'tür ancak yanlış kullanıldığında uygulama yavaşlayabilir.Özellikle:
- Gereksiz veritabanı sorguları
- N+1 sorgu problemi
- Büyük veri listeleri
- Cache eksikliği
N+1 Query Problemi
Bir ana sorgudan sonra her kayıt için ayrı sorgu çalıştırılması durumudur.Örneğin 100 ürün listelenirken her ürünün kategorisi için ayrıca sorgu yapılırsa çok fazla veritabanı isteği oluşabilir.
Eager Loading
İlişkili verilerin daha verimli şekilde önceden alınmasına yardımcı olabilir.N+1 problemini azaltmak için sık kullanılır.
Pagination
Binlerce kaydı tek sayfada göstermek yerine:- 20
- 50
- 100
Cache Kullanmak
Sık değişmeyen veriler cache'e alınabilir.Örneğin:
- Kategoriler
- Ayarlar
- Bazı istatistikler
Database Index
Laravel kullanıyor olmak veritabanı index ihtiyacını ortadan kaldırmaz.Çok aranan veya ilişkilendirilen sütunlarda doğru index performansı ciddi şekilde etkileyebilir.
Production Optimizasyonu
Canlı ortamda Laravel'in:- Config
- Route
- View
Bu işlemler uygulama performansına katkı sağlayabilir.
Laravel ve OPcache
PHP OPcache kullanımı production Laravel uygulamalarında performans açısından faydalıdır.PHP kodunun her istekte tekrar derlenmesi azaltılabilir.
Laravel İçin Hosting
Basit projeler uygun PHP hosting üzerinde çalışabilir.Ancak Laravel klasik WordPress hosting kadar her hosting paketinde kolay çalışmayabilir.
Sunucuda:
- Doğru PHP sürümü
- Gerekli extension'lar
- Composer
- Dosya izinleri
Shared Hosting'de Laravel
Kullanılabilir.Ancak hosting sağlayıcının:
- SSH
- Composer
- PHP sürümü
- Cron
VDS Üzerinde Laravel
Daha fazla kontrol sağlar.Örneğin:
- Nginx
- PHP-FPM
- Redis
- Queue worker
Ancak sunucu güvenliği ve bakımı sizin sorumluluğunuzda olur.
Laravel'de Document Root
Web sunucusunun Laravel projesinin tamamını değil:public
klasörünü dışarıya açması gerekir.
Bu önemli bir güvenlik konusudur.
Projenin Tamamını Public Yapmak
Yanlış yapılandırmadır.Böyle bir durumda:
- .env
- Config
- Uygulama dosyaları
Dosya İzinleri
Laravel'in bazı klasörlere yazma iznine ihtiyacı olabilir.Ancak tüm projeye gereksiz geniş izin vermek doğru değildir.
777 Kullanmak
Sorun çözmek için tüm klasörlere 777 vermek kötü bir alışkanlıktır.Gerçek:
- Sahiplik
- Grup
- Yazma izni
Laravel Deploy Nedir?
Geliştirme ortamındaki uygulamanın production sunucuya aktarılmasıdır.Deploy sırasında:
- Kod
- Bağımlılıklar
- Environment ayarları
- Database migration
- Cache
Git ile Deployment
Laravel projeleri Git ile yönetilebilir.Sunucuda repository üzerinden yeni sürüm alınabilir.
Daha profesyonel yapılarda deployment otomatikleştirilebilir.
GitHub'a .env Yüklemeyin
Laravel öğrenirken yapılabilecek en kritik hatalardan biridir..env içerisinde gerçek:
- Veritabanı parolası
- Mail parolası
- API key
Production'da Composer
Sunucuya yalnızca production için gerekli bağımlılıkların kurulması tercih edilebilir.Geliştirme paketlerinin tamamı canlı ortamda gerekmeyebilir.
Migration Production'da Dikkatli Çalıştırılmalı
Veritabanını değiştiren migration işlemleri canlı kullanıcıları etkileyebilir.Özellikle:
- Kolon silme
- Tablo değiştirme
- Büyük veri dönüşümü
Backup Olmadan Deploy
Özellikle büyük değişikliklerde risklidir.Deploy öncesinde:
- Veritabanı
- Kritik dosyalar
Zero Downtime Deployment Nedir?
Yeni uygulama sürümünün mümkün olduğunca kullanıcı kesintisi olmadan yayına alınmasıdır.Büyük production sistemlerinde kullanılabilir.
Başlangıç seviyesinde gerekli değildir.
Laravel Testing
Laravel otomatik testler yazmak için altyapı sunar.Testler:
- Yeni özelliklerin
- Güncellemelerin
- Hata düzeltmelerinin
Unit Test Nedir?
Küçük bir fonksiyon veya sınıfın belirli davranışını test eder.Feature Test Nedir?
Uygulamanın daha büyük bir akışını test edebilir.Örneğin:
Kullanıcı login olabiliyor mu?
gibi.
Test Yazmak Başlangıçta Gerekli mi?
İlk Laravel gününde şart değildir.Ancak temel proje geliştirme mantığı oturduktan sonra test yazmayı öğrenmek çok faydalıdır.
Laravel Öğrenirken İlk Proje
İlk olarak basit bir:Görev takip uygulaması
yapılabilir.
Özellikler:
- Görev ekleme
- Görev listeleme
- Düzenleme
- Silme
İkinci Proje: Blog Sistemi
İçerisinde:- Yazı
- Kategori
- Kullanıcı
- Admin paneli
Üçüncü Proje: Üyelik Sistemi
Özellikler:- Kayıt
- Login
- Logout
- Profil
- Yetkilendirme
Dördüncü Proje: Destek Talep Sistemi
Kullanıcı:- Destek talebi açar
- Mesaj gönderir
- Durumunu takip eder
Bu proje gerçek hayata oldukça yakındır.
Beşinci Proje: Mini E-Ticaret
Temel olarak:- Ürün
- Kategori
- Sepet
- Sipariş
- Kullanıcı
Başlangıçta gerçek ödeme entegrasyonu eklemek zorunlu değildir.
Laravel Öğrenme Sırası
1. Aşama
PHP ve OOP tekrar edin.2. Aşama
Composer öğrenin.3. Aşama
Laravel proje yapısını inceleyin.4. Aşama
Route öğrenin.5. Aşama
Controller öğrenin.6. Aşama
Blade öğrenin.7. Aşama
Migration öğrenin.8. Aşama
Model ve Eloquent öğrenin.9. Aşama
CRUD uygulaması geliştirin.10. Aşama
Validation öğrenin.11. Aşama
Authentication ve authorization öğrenin.12. Aşama
Relationship konusuna geçin.13. Aşama
File upload öğrenin.14. Aşama
API geliştirin.15. Aşama
Cache, Queue ve Scheduler öğrenin.16. Aşama
Deployment ve production ayarlarına geçin.30 Günlük Laravel Öğrenme Planı
1. Hafta
- Laravel kurulumu
- Proje yapısı
- Routing
- Controller
- Blade
2. Hafta
- Veritabanı
- Migration
- Model
- Eloquent
- CRUD
3. Hafta
- Validation
- Authentication
- Middleware
- Relationship
- File upload
4. Hafta
- API
- Cache
- Queue
- Scheduler
- Production mantığı
Laravel Öğrenirken Kod Ezberlenmeli mi?
Hayır.Asıl öğrenmeniz gereken:
- Route ne işe yarar?
- Controller neden kullanılır?
- Model neden vardır?
- Migration ne çözer?
- Middleware nerede kullanılır?
Syntax zamanla zaten öğrenilir.
Dokümantasyon Kullanmak
Laravel geliştirirken dokümantasyon kullanmak son derece normaldir.Her method veya özelliği ezberlemeye gerek yoktur.
Önemli olan ihtiyaç duyduğunuz bilgiyi bulabilmektir.
Laravel Öğrenirken Yapılan En Yaygın Hatalar
PHP Bilmeden Laravel'e Geçmek
Framework içerisindeki işlemlerin neden çalıştığını anlamayı zorlaştırır.MVC Mantığını Öğrenmemek
Kodun tamamı controller veya route içine doldurulabilir.Her Şeyi Controller'a Yazmak
Proje büyüdükçe bakım zorlaşır.SQL Öğrenmemek
Veritabanı performansını anlamayı zorlaştırır..env Dosyasını Paylaşmak
Ciddi güvenlik riski oluşturabilir.Debug Modunu Canlıda Açık Bırakmak
Hassas bilgiler açığa çıkabilir.Her Klasöre 777 Vermek
Güvenliği zayıflatır.Migration'ı Yedeksiz Çalıştırmak
Veri kaybına neden olabilir.Çok Erken Paket Kullanmak
Temel Laravel mantığını öğrenmeden her soruna paket kurmak gelişimi yavaşlatabilir.İlk Projeyi Çok Büyük Seçmek
Büyük e-ticaret veya sosyal medya sistemi başlangıçta gereksiz zor olabilir.Laravel Paketleri
Laravel ekosisteminde birçok hazır paket vardır.Bu paketlerle:
- Yetki sistemi
- Ödeme
- Dosya yönetimi
- API
Ancak her özellik için rastgele paket kullanılmamalıdır.
Paket Seçerken Nelere Bakılmalı?
- Güncel mi?
- Aktif geliştiriliyor mu?
- Laravel sürümüyle uyumlu mu?
- Dokümantasyonu iyi mi?
- Güvenilir mi?
Laravel Upgrade
Laravel'in yeni ana sürümlerine geçerken:- PHP sürümü
- Paket uyumluluğu
- Deprecated özellikler
Büyük production projelerinde önce staging ortamında test yapılmalıdır.
Staging Nedir?
Canlı uygulamanın test ortamıdır.Yeni:
- Güncelleme
- Paket
- Özellik
Laravel Backup
Uygulama yedeğinde temel olarak:- Veritabanı
- Kullanıcı upload'ları
- Gerekli yapılandırmalar
Kod Git repository üzerinde bulunabilir ancak bu veritabanı yedeğinin yerine geçmez.
Laravel Monitoring
Production uygulamasında:- HTTP hataları
- Queue sorunları
- CPU
- RAM
- Disk
- Veritabanı
500 Hatası
Laravel uygulamasında 500 hatası genel bir sunucu veya uygulama hatasını gösterebilir.Detay için:
- Laravel logları
- Web server logları
- PHP logları
419 Hatası
Laravel projelerinde form veya session/CSRF ile ilişkili problemler nedeniyle görülebilir.Örneğin:
- CSRF token
- Session
- Cookie
404 Hatası
Muhtemel nedenler:- Route yok
- Yanlış URL
- Web server rewrite problemi
403 Hatası
Genellikle:- Yetkilendirme
- Dosya izinleri
- Web server
Database Connection Hatası
Kontrol edilmesi gerekenler:- Database host
- Database adı
- Kullanıcı
- Parola
- Port
- Yetkiler
Permission Hatası
Özellikle:- storage
- Cache
Tüm projeye geniş yetki vermek yerine doğru sahiplik ve izin kullanılmalıdır.
Cache Sonrası Değişiklik Görünmüyor
Laravel'in config, route veya view cache mekanizmaları nedeniyle eski yapı kullanılabilir.Deploy sürecinde cache yönetimi doğru yapılmalıdır.
Environment Değişikliği Görünmüyor
Environment ayarı değiştirildikten sonra önceden oluşturulan config cache nedeniyle eski değer kullanılabilir.Bu nedenle cache davranışı öğrenilmelidir.
Laravel ve Git
Gerçek projelerde Git kullanmak oldukça önemlidir.Bu sayede:
- Değişiklik geçmişi
- Branch
- Takım çalışması
- Geri dönüş
Branch Nedir?
Yeni özellik veya hata düzeltmesinin ana koddan ayrı geliştirilmesini sağlar.Örneğin:
- Login geliştirme
- Yeni ödeme sistemi
- Hata düzeltme
Laravel İçin En İyi Öğrenme Yöntemi
En etkili yöntem:Konuyu öğren → Küçük örnek yap → Projede uygula → Hata al → Logdan çöz
şeklindedir.
Sadece eğitim videosu izlemek Laravel öğrenmek için yeterli değildir.
Her Gün Ne Kadar Çalışılmalı?
Düzenli olarak:1 – 2 saat
çalışmak iyi bir başlangıç olabilir.
Ancak süreden çok uygulama yapmak önemlidir.
Laravel Öğrenmek Ne Kadar Sürer?
PHP temeli güçlü bir kullanıcı birkaç hafta içerisinde Laravel'in temel mantığını kavrayabilir.Profesyonel uygulama geliştirme seviyesi ise:
- Proje yaparak
- Hata çözerek
- Production deneyimi kazanarak
Laravel Başlangıç Kontrol Listesi
- PHP temellerini biliyor muyum?
- OOP mantığını biliyor muyum?
- Composer kullanabiliyor muyum?
- Laravel proje yapısını biliyor muyum?
- Route oluşturabiliyor muyum?
- Controller mantığını anlıyor muyum?
- Blade kullanabiliyor muyum?
- Migration oluşturabiliyor muyum?
- Model kullanabiliyor muyum?
- Eloquent temelini biliyor muyum?
- CRUD yapabiliyor muyum?
- Validation kullanabiliyor muyum?
- Relationship mantığını biliyor muyum?
- Authentication ve authorization farkını biliyor muyum?
- Middleware kullanabiliyor muyum?
- .env güvenliğini biliyor muyum?
- Laravel loglarını kontrol edebiliyor muyum?
İlk Projede Neler Olmalı?
İlk Laravel projeniz çok büyük olmamalıdır.Örneğin basit bir destek sistemi yapılabilir.
Projede:
- Kullanıcı kaydı
- Login
- Destek talebi oluşturma
- Talep listeleme
- Talep düzenleme
- Admin paneli
Bu proje Laravel'in temel parçalarının büyük bölümünü kullanmanızı sağlar.
Laravel Sonrasında Ne Öğrenilmeli?
Laravel temelini öğrendikten sonra:- İleri SQL
- REST API
- Redis
- Queue
- Testing
- Docker
- Linux
- Nginx
- CI/CD
Frontend tarafında ise:
- JavaScript
- TypeScript
- Vue
- React
Full Stack Laravel Geliştiricisi İçin Yol
Genel olarak:- HTML
- CSS
- JavaScript
- PHP
- SQL
- OOP
- Composer
- Laravel
- Git
- API
- Linux
- Deployment
- Docker
Laravel Her Proje İçin Gerekli mi?
Hayır.Çok küçük bir PHP scripti için Laravel gereksiz olabilir.
Laravel özellikle:
- Orta
- Büyük
- Uzun süre geliştirilecek
Laravel mi Saf PHP mi?
Öğrenmek için önce saf PHP önemlidir.Gerçek ve büyüyen uygulamalarda Laravel:
- Düzen
- Güvenlik
- Bakım
- Hızlı geliştirme
Laravel mi WordPress mi?
İkisi farklı amaçlara sahiptir.WordPress
Hazır:- Site
- Blog
- WooCommerce
Laravel
Özel iş mantığı bulunan uygulamalarda daha fazla kontrol sağlar.Örneğin özel:
- CRM
- ERP
- SaaS
- Yönetim sistemi
Laravel mi Node.js mi?
Doğrudan aynı şeyler değildir.Laravel PHP framework'üdür.
Node.js ise JavaScript çalışma ortamıdır.
Her ikisiyle backend geliştirilebilir.
Seçim:
- Ekibin bilgisi
- Projenin ihtiyacı
- Ekosistem
Laravel Öğrenmeye Değer mi?
PHP tabanlı modern web uygulamaları geliştirmek isteyen biri için evet.Özellikle PHP temeli bulunan geliştiriciler için Laravel:
- MVC
- ORM
- Authentication
- API
- Queue
- Cache
Sonuç
Laravel, PHP ile modern ve düzenli web uygulamaları geliştirmek için kullanılan güçlü bir framework'tür.Laravel öğrenmeye başlamadan önce özellikle:
- PHP
- OOP
- SQL
- HTML
Başlangıçta:
- Routing
- Controller
- Blade
- Migration
- Model
- Eloquent
Ardından:
- CRUD
- Validation
- Authentication
- Authorization
- Middleware
- Relationship
Daha ileri aşamada ise:
- API
- Cache
- Redis
- Queue
- Scheduler
- Testing
- Deployment
Laravel öğrenirken ilk projeyi çok büyük seçmemek önemlidir. Basit bir görev takip sistemi, blog veya destek talep sistemi temel konuları öğrenmek için daha uygundur.
Ayrıca Laravel'in sunduğu hazır güvenlik özelliklerine rağmen geliştiricinin:
- Kullanıcı verilerini doğrulaması
- Yetkilendirmeyi doğru yapması
- .env dosyasını koruması
- Debug modunu production'da kapatması
- Veritabanı ve dosya izinlerini doğru yapılandırması
Kısacası Laravel öğrenmenin en sağlıklı yolu önce PHP ve OOP temelini sağlamlaştırmak, ardından MVC mantığını öğrenmek ve küçük gerçek projeler geliştirerek route, controller, model ve veritabanı ilişkilerini uygulamalı şekilde kavramaktır.



