Neler yeni
Metin2 Support

Metin2 Dünyasına Hoş Geldiniz! Yeni bir maceraya adım atın ve topluluğumuza katılın. Sorularınızı sormak, deneyimlerinizi paylaşmak ve diğer oyuncularla iletişim kurmak için hemen kaydolun. Kayıt olun, etkileşimde bulunun ve Metin2 dünyasındaki serüveninizi daha da özel hale getirin. Birlikte oynamak için sabırsızlanıyoruz!

Laravel Başlangıç Rehberi

roq

New member
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
daha düzenli ve sürdürülebilir şekilde geliştirilebilir.

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
  • Mail
  • Queue
gibi birçok özellik Laravel içerisinde düzenli şekilde yönetilebilir.

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
hale gelir.

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
OOP bilgisi özellikle Laravel öğrenirken büyük avantaj sağlar.

HTML ve CSS Bilmek Gerekir mi?​

Evet.

Laravel web uygulamaları geliştirirken frontend tarafında:

  • HTML
  • CSS
  • JavaScript
kullanılır.

Ç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
kullanılacağı için JavaScript bilgisi zamanla gerekli hale gelir.

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
oluşturulabilir.

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
şeklindedir.

Laravel 9 Kullanm ve lk Dokunu

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
gerekir.

Geliştirme ortamında:

  • Windows
  • Linux
  • macOS
üzerinde Laravel kullanılabilir.

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
sağlar.

Laravel Projesi Nasıl Oluşturulur?​

Genel mantık:

  1. PHP ortamı hazırlanır.
  2. Composer kurulur.
  3. Laravel projesi oluşturulur.
  4. Ortam ayarları yapılır.
  5. Veritabanı bağlantısı tanımlanır.
  6. Geliştirme sunucusu çalıştırılır.
Başlangıçta localhost ortamında çalışmak daha kolaydı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ı
olabilir.

Laragon Laravel İçin Uygun mu?​

Evet.

Özellikle Windows kullanıcıları için:

  • PHP
  • MySQL
  • Web server
  • Composer
gibi araçları birlikte yönetmeyi kolaylaştırabilir.

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
ayrı bölümlerde tutulur.

app Klasörü​

Uygulamanın ana iş mantığının önemli bir bölümü burada bulunur.

Örneğin:

  • Modeller
  • Controller'lar
  • Servisler
bu yapı içerisinde yer alabilir.

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
gibi kaynaklar burada bulunabilir.

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
bulunabilir.

storage Klasörü​

Uygulamanın:

  • Log
  • Cache
  • Geçici dosya
  • Upload
gibi verilerini barındırabilir.

database Klasörü​

Veritabanıyla ilgili:

  • Migration
  • Seeder
  • Factory
dosyaları bulunabilir.

config Klasörü​

Laravel'in farklı yapılandırma ayarlarını içerir.

Örneğin:

  • Mail
  • Cache
  • Database
  • Session
ayarları burada yönetilebilir.

.env Dosyası Nedir?​

Laravel projesinin ortama özel ayarlarını tutar.

Örneğin:

  • Veritabanı adı
  • Veritabanı kullanıcı adı
  • Parola
  • Mail ayarları
  • Uygulama URL'si
burada bulunabilir.

.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
gibi.

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
gibi hassas bilgiler gösterebilir.

Bu nedenle production ortamında kapalı olmalıdır.

MVC Nedir?​

Laravel'de en önemli kavramlardan biridir.

MVC:

  • Model
  • View
  • Controller
anlamına gelir.

Model Nedir?​

Veritabanı ve uygulama verileriyle ilişkili katmandır.

Örneğin:

  • User
  • Product
  • Order
birer model olabilir.

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ığı
aynı dosyada birbirine karışmaz.

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
için farklı route'lar olabilir.

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
işlemleri ayrı HTTP yöntemleriyle yönetilebilir.

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
gibi kaynakların yönetiminde faydalıdır.

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
işlemleri yapılabilir.

Layout Nedir?​

Sitenin tekrar kullanılan ana tasarım yapısıdır.

Örneğin:

  • Header
  • Menü
  • Footer
her sayfada tekrar yazılmak yerine ortak layout içerisinde tutulabilir.

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ı
component yapılabilir.

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
işlemleri daha okunabilir hale gelir.

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
konusunda SQL bilgisi gerekir.

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 ile oluşturulabilir.

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
eklenebilir.

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
gibi işlemlerde önemlidir.

Authentication Nedir?​

Kullanıcının kim olduğunu doğrulamaktır.

Örneğin:

  • Login
  • Logout
  • Kayıt
işlemleri authentication kapsamındadır.

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?
kontrol edilebilir.

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
gibi bilgiler session ile yönetilebilir.

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
gibi alanlarda kullanılabilir.

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 ile yapılabilir.

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
planlanabilir.

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
üzerinden mail gönderebilir.

Örneğin:

  • Şifre sıfırlama
  • Sipariş bildirimi
  • Üyelik doğrulama
e-postaları gönderilebilir.

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
gibi.

File Upload​

Kullanıcıların:

  • Profil fotoğrafı
  • Belge
  • Ürün görseli
yüklemesi sağlanabilir.

Dosya Upload Güvenliği​

Kullanıcıdan gelen dosyalar:

  • Dosya türü
  • Boyut
  • Yetki
açısından kontrol edilmelidir.

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
kullanılabilir.

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
Laravel backend ile iletişim kurabilir.

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
gibi teknolojiler tercih edilebilir.

Blade mi React mi?​

Proje ihtiyacına göre değişir.

Basit:

  • Yönetim paneli
  • Kurumsal uygulama
  • Blog
için Blade yeterli olabilir.

Ç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
işlemek ve geliştirme ortamında yönetmek için kullanılabilir.

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 üzerinden yönetilebilir.

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
gibi.

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
gibi noktalarda faydalıdır.

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
performansı etkileyebilir.

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
gibi gruplarla sayfalara bölmek daha sağlıklıdır.

Cache Kullanmak​

Sık değişmeyen veriler cache'e alınabilir.

Örneğin:

  • Kategoriler
  • Ayarlar
  • Bazı istatistikler
her istekte veritabanından alınmak zorunda olmayabilir.

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
gibi yapıları için uygun cache mekanizmaları kullanılabilir.

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
uygun olmalıdır.

Images

Shared Hosting'de Laravel​

Kullanılabilir.

Ancak hosting sağlayıcının:

  • SSH
  • Composer
  • PHP sürümü
  • Cron
desteği önemlidir.

VDS Üzerinde Laravel​

Daha fazla kontrol sağlar.

Örneğin:

  • Nginx
  • PHP-FPM
  • Redis
  • Queue worker
özel olarak yapılandırılabilir.

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ı
risk altında olabilir.

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
sorunu çözülmelidir.

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
gibi işlemler yönetilir.

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
bulunabilir.

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ü
işlemleri bakım planıyla yapılmalıdır.

Backup Olmadan Deploy​

Özellikle büyük değişikliklerde risklidir.

Deploy öncesinde:

  • Veritabanı
  • Kritik dosyalar
yedeklenmelidir.

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
mevcut sistemi bozup bozmadığını kontrol etmeye yardımcı olur.

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
Bu proje CRUD mantığını öğretir.

İkinci Proje: Blog Sistemi​

İçerisinde:

  • Yazı
  • Kategori
  • Kullanıcı
  • Admin paneli
bulunabilir.

Üçüncü Proje: Üyelik Sistemi​

Özellikler:

  • Kayıt
  • Login
  • Logout
  • Profil
  • Yetkilendirme
olabilir.

Dördüncü Proje: Destek Talep Sistemi​

Kullanıcı:

  • Destek talebi açar
  • Mesaj gönderir
  • Durumunu takip eder
Admin tarafında talepler yönetilir.

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ı
yapıları oluşturulabilir.

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ığı
Ay sonunda küçük bir proje geliştirmek faydalıdır.

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?
gibi temel mantıklardı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
gibi özellikler eklenebilir.

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?
kontrol edilmelidir.

Laravel Upgrade​

Laravel'in yeni ana sürümlerine geçerken:

  • PHP sürümü
  • Paket uyumluluğu
  • Deprecated özellikler
kontrol edilmelidir.

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
önce staging üzerinde denenebilir.

Laravel Backup​

Uygulama yedeğinde temel olarak:

  • Veritabanı
  • Kullanıcı upload'ları
  • Gerekli yapılandırmalar
korunmalıdır.

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ı
takip edilmelidir.

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ı
incelenmelidir.

419 Hatası​

Laravel projelerinde form veya session/CSRF ile ilişkili problemler nedeniyle görülebilir.

Örneğin:

  • CSRF token
  • Session
  • Cookie
kontrol edilmelidir.

404 Hatası​

Muhtemel nedenler:

  • Route yok
  • Yanlış URL
  • Web server rewrite problemi
olabilir.

403 Hatası​

Genellikle:

  • Yetkilendirme
  • Dosya izinleri
  • Web server
ile ilişkili olabilir.

Database Connection Hatası​

Kontrol edilmesi gerekenler:

  • Database host
  • Database adı
  • Kullanıcı
  • Parola
  • Port
  • Yetkiler
dır.

Permission Hatası​

Özellikle:

  • storage
  • Cache
gibi Laravel'in yazması gereken alanlarda görülebilir.

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üş
daha kolay yönetilir.

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
ayrı branch üzerinde yapılabilir.

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
zamanla gelişir.

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
bulunabilir.

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
konularına geçilebilir.

Frontend tarafında ise:

  • JavaScript
  • TypeScript
  • Vue
  • React
gibi teknolojiler değerlendirilebilir.

Full Stack Laravel Geliştiricisi İçin Yol​

Genel olarak:

  1. HTML
  2. CSS
  3. JavaScript
  4. PHP
  5. SQL
  6. OOP
  7. Composer
  8. Laravel
  9. Git
  10. API
  11. Linux
  12. Deployment
  13. Docker
şeklinde ilerlenebilir.

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
projelerde daha fazla avantaj sağlar.

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
açısından önemli avantaj sağlar.

Laravel mi WordPress mi?​

İkisi farklı amaçlara sahiptir.

WordPress​

Hazır:

  • Site
  • Blog
  • WooCommerce
projelerinde oldukça hızlıdır.

Laravel​

Özel iş mantığı bulunan uygulamalarda daha fazla kontrol sağlar.

Örneğin özel:

  • CRM
  • ERP
  • SaaS
  • Yönetim sistemi
geliştirmek için Laravel daha uygun olabilir.

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
gibi faktörlere bağlıdır.

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
gibi profesyonel web geliştirme kavramlarını öğrenmek için güçlü bir ortam sunar.

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
temellerinin bilinmesi süreci ciddi şekilde kolaylaştırır.

Başlangıçta:

  • Routing
  • Controller
  • Blade
  • Migration
  • Model
  • Eloquent
konuları öğrenilmelidir.

Ardından:

  • CRUD
  • Validation
  • Authentication
  • Authorization
  • Middleware
  • Relationship
konularına geçilebilir.

Daha ileri aşamada ise:

  • API
  • Cache
  • Redis
  • Queue
  • Scheduler
  • Testing
  • Deployment
öğrenilebilir.

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ı
gerekir.

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.
 

Konuyu görüntüleyenler

  • Üst