PHP & LARAVEL EĞİTİMİ
PHP ve Laravel eğitimi, framework'ün "convention over configuration" verimliliğini gerçek ürün ölçeğine taşıyan bir programdır. Laravel'in service container ve provider mimarisi; Eloquent ORM ile relationship (HasOne, HasMany, BelongsToMany); migration, seeder ve factory ile schema management somut senaryolarla işlenir.
Eğitim sonunda katılımcı, middleware ve global scope ile cross-cutting concern'leri toplar; queue, job ve listener ile asenkron iş yürütür; Sanctum ve Passport arasında authentication stratejisi seçer. Telescope, Horizon ve Pulse ile observability hattı eğitimin operasyonel kapanışıdır. Eğitim sırasında Laravel belgeleri temel referans olarak kullanılır.
Katılımcı Profili
Bu eğitim, Laravel'in "convention over configuration" verimliliğini ürün ölçeğine taşımak isteyen rollere yöneliktir:
- PHP Geliştiriciler: Laravel ile web uygulaması yazan mühendisler
- Backend Mühendisleri: PHP tarafında modern framework kullanan roller
- Full-stack Geliştiriciler: Laravel + Vue veya Inertia ile uçtan uca yazanlar
- E-ticaret Geliştiricileri: Magento veya Shopify dışında özel çözüm yazan ekipler
- Migration Ekipleri: Legacy PHP'den Laravel'e geçen geliştirici ekipleri
Ön Gereklilikler
Bu eğitime katılım için aşağıdaki ön bilgiler önerilir:
- PHP ile temel söz dizimi ve OOP rahatlığı
- HTTP, REST API ve JSON kavramlarına aşinalık
- Composer ile paket yönetimi mantığına giriş düzeyi bilgi
- SQL ile temel sorgulama deneyimi
- Git ile sürüm kontrol akışı bilgisi
Süresi ve Tarihi
Süre: 4 gün. Bu süre standart program içindir; ek modüllere ve hedefe göre süre özelleştirilebilir.
Eğitim tarihleri ve saatleri, ekibinizin uygunluğuna göre birlikte planlanır.
Kazanımlar
Bu eğitim sonunda katılımcı, Laravel'in "convention over configuration" verimliliğini ürün ölçeğine taşır:
- Laravel'in service container ve provider mimarisini anlatır
- Eloquent ORM ile relationship (HasOne, HasMany, BelongsToMany) modeller
- Migration, seeder ve factory ile schema management yapar
- Middleware ve global scope ile cross-cutting concern'leri toplar
- Queue, job ve listener ile asenkron iş yürütür
- Sanctum ve Passport arasında authentication stratejisi seçer
- Telescope, Horizon ve Pulse ile observability hattı kurar
PHP & Laravel Eğitimi Konuları
1. Modern PHP - Sürümler ve PSR Standartları
- PHP sürüm akışı ve performans iyileştirmeleri
- PSR-1, PSR-4, PSR-12 kod standartları
- FIG ve PHP-FIG ekosistemi
- OPcache ve JIT compilation
2. Composer ve Autoloading
- Composer ile dependency yönetimi
- composer.json ve composer.lock
- PSR-4 autoloading
- Packagist ve private repository
3. Type System ve Strict Types
- Scalar type declaration
- Union type, intersection type
- Nullable, readonly property
- declare(strict_types=1) ve type juggling
4. Trait, Enum, Match Expression
- Trait ile yatay code reuse
- Backed enum ve pure enum
- match expression (switch alternatifi)
- First-class callable syntax
- Named argument
5. Laravel Mimari - Service Container ve Provider
- Service Container ve dependency injection
- Service Provider lifecycle
- Facade ve real-time facade
- Contract (interface) ile soyutlama
6. Routing ve Middleware
- Web ve API route grupları
- Route model binding
- Middleware pipeline
- Route caching ve route:list
- Throttle, signed URL, rate limiting
7. Eloquent ORM - Model ve Relationship
- Active Record pattern ile model
- hasOne, hasMany, belongsTo, belongsToMany
- Polymorphic ve has-many-through
- Eager loading ve N+1 problem
- Scope, accessor, mutator, cast
8. Migration, Seeder, Factory
- Migration ile schema versioning
- Blueprint API ve indexing
- Seeder ile test verisi
- Model factory ve faker
9. Blade Template Engine
- Blade direktifleri (@if, @foreach, @include)
- Component ve slot
- Anonymous component
- Blade component ve attribute bag
10. Validation ve Form Request
- Validator facade ve rule object
- Form Request class ile validation
- Custom rule ve rule object
- Authorization Form Request içinde
11. Authentication - Sanctum, Passport, Breeze, Jetstream
- Breeze: minimal starter
- Jetstream: full-featured stack
- Sanctum: SPA ve mobil API token
- Passport: full OAuth2 server
- Multi-guard authentication
12. Authorization - Gate ve Policy
- Gate ile basit yetkilendirme
- Policy ile model-level authorization
- Blade @can direktifi
- Role ve permission yönetimi
13. Queue ve Job
- Queue driver: Redis, database, SQS
- Job dispatch ve chain
- Failed job ve retry stratejisi
- Horizon: Redis queue monitor
- Job batching
14. Event ve Listener
- Event ve listener decoupling
- Queueable listener
- Model event ve observer
- Broadcasting (Pusher, Redis, Reverb)
15. Cache - Redis, Memcached
- Cache facade ve store
- Cache tag ve flush stratejisi
- Rate limiting cache üzerinden
- Atomic lock
16. API Resource ve Versioning
- API Resource ile JSON transformation
- Resource Collection ve pagination
- API versioning yaklaşımları
- Sanctum token ile API auth
- OpenAPI / Swagger entegrasyon
17. Testing - PHPUnit, Pest, HTTP Test
- PHPUnit ve Pest test framework
- Feature test ve unit test
- HTTP test ve database test
- RefreshDatabase trait
- Mocking facade ve event
18. Deploy - Forge, Vapor, Octane
- Laravel Forge ile sunucu yönetimi
- Vapor: serverless on AWS Lambda
- Octane: Swoole, RoadRunner ile yüksek performans
- Zero-downtime deploy ve queue worker
PHP & LARAVEL EĞİTİMİ ile İlgili
Sıkça Sorulan Sorular ve Cevapları
Eloquent ORM ile N+1 problemini nasıl önleyebiliriz?
with('relation') ile eager loading yapılır — tek query yerine 2 sorgu, N+1 gider. Nested relation için with('posts.comments') zinciri. withCount sadece count ister, full relation çekmeden. Laravel Debugbar veya Telescope query sayısını gösterir; N+1 erken tespit edilir.
Service Container ve Service Provider nasıl çalışır?
Service Container Laravel'in IoC container'ı; bind, singleton, instance ile dependency tanımları. Constructor injection ile otomatik resolve. Service Provider container'a binding'leri kaydeder; boot() metodunda event listener, view composer eklenir. config/app.php providers array'i hangi provider'ların yükleneceğini belirler.
Migration ile seeder arasındaki sınır?
Migration schema (table, column, index) versiyonlu yönetir — DB yapısı değişikliği. Seeder veri ekler (initial data, demo data). Migration up()/down() ile geri alınabilir. Faker ile büyük volume test data seeder içinde üretilir. Production'da seeder seçici çalıştırılır.
Queue ile job arasında nasıl bir akış kurulur?
Job class oluşturulur (php artisan make:job). dispatch() ile queue'ya alınır; driver (Redis, database, SQS) işi worker'a iletir. Failed job ayrı tabloya kaydedilir, retry policy ile yeniden çalıştırılır. Horizon Redis-based queue'lar için dashboard ve metrics sağlar.
Sanctum ile Passport arasındaki fark nedir?
Sanctum lightweight, SPA ve mobile için ideal — token veya cookie-based, kurulumu basit. Passport full OAuth2 server — authorization code, password grant, client credentials. Üçüncü taraflar için OAuth2 gerekiyorsa Passport; iç SPA/mobile için Sanctum yeterli. Karar API tüketici tipine bağlı.
Telescope, Horizon ve Pulse arasındaki rol farkı?
Telescope debug ve geliştirme aracı; request, query, mail, exception izler — production'da kapatılır. Horizon Redis queue monitoring — queue length, throughput, failed job. Pulse application-wide performance dashboard (slow query, exception rate, server stat). Üçü farklı katman, birlikte tam observability.



