Laravel, sıkça kullanılan PHP framework’lerinden birisidir. Eğer kariyerinize PHP developer olarak devam etmek istiyorsanız, teknik mülakatlarda Laravel mülakat sorularıyla da karşılaşabilirsiniz. Bu yazımızda, Laravel mülakat soruları ve cevaplarını listeledik. 👇💼
En Çok Sorulan Laravel Mülakat Soruları
1. Laravel nedir?
Laravel, ücretsiz ve açık kaynaklı PHP framework’üdür. Taylor Otwell tarafından 2011 yılında geliştirilmiştir. Web tabanlı uygulamalar geliştirmek için özel olarak tasarlanmıştır ve MVC modelini takip eder. Basit ve iyi yapılandırılmış web uygulamaları oluşturmaya uygundur.
Laravel, proje bağımlılıklarını yönetmek için Composer'ı kullanarak, projede kullanıma hazır olan paket adını, sürümünü ve önceden oluşturulmuş işlevselliklerini kullanarak uygulamanın daha hızlı geliştirilmesini sağlar. Öğrenmesi ve anlaması kolay bir blade şablonlama motoruyla birlikte gelir. Bu özellik, PHP veya HTML ile çalışırken kullanışlı olmasını sağlar.
2. Laravel event (olay) nedir?
Evet (olay), program tarafından tanınan ve işlenen eylemlerdir. Laravel'de eventler, uygulamada bir eylemin gerçekleştiğini bildirmenin yoludur.
Laravel'deki tüm eventler app/Events dizininde ve listeler app/listeners dizininde saklanır. Bir eventle eşleşen birden fazla listener olabilir ve event gönderildiğinde tüm listeners sınıfları, eşleştikleri sıraya göre sırayla çalıştırılır. Yani bir event tetiklendiğinde uygulama farklı dinleyicileri tetikleyerek birden fazla görevi gerçekleştirebilir.
Uygulamanın app\Events klasöründe yeni bir event sınıfı oluşturmak için şu komut kullanılır 👇:
Event oluşturmanın başka bir yolu da eventleri EventServiceProvider sınıfına kaydetmek ve ardından çalıştırmaktır. 👇:
3. Laravel facades nedir?
Laravel facades, uygulamanın hizmet kapsamında mevcut olan sınıflar için statik bir arayüz sunar. Laravel facedesleri, geleneksel statik yöntemlerden daha fazla test edilebilirlik ve esneklik sağlar.
🎯 Laravel'de tüm facades’ler Illuminate\Support\Facades ad alanları içinde saklanır.
4. Laravel Validation (Validasyon) işlemleri nedir?
Laravel Validation, denetleyici sınıfı (Validator sınıfı) aracılığıyla verileri doğrulamak ve doğrulama hata mesajlarını almak için kullanılan basit ve kullanışlı bir özelliktir.
Doğrulama sınıfı, gelen HTTP isteklerini doğrulamak için ValidatesRequests özelliğini kullanarak gelen verileri doğrular.
5. Laravel form validation nedir?
Laravel form validation, kullanıcının web formu aracılığıyla gönderdiği verilerin belirli kurallara uygun olup olmadığını kontrol etme işlemidir. Ayrıca uygulamanın kötü niyetli girişlerden korunmasını da sağlar.
👉 GET route,formu görüntülemek için kullanılır.
👉 POST route, kullanıcı bir formu doldurup gönderdiğinde, bu rota çalışır ve kullanıcının önerisini görüntüler.
6. Laravel composer nedir?
Composer, tüm bağımlılıkları ve kütüphaneleri içeren, proje oluşturmaya yardımcı olan bir araçtır. Composer kullanılarak projeye üçüncü taraf kütüphaneler kolayca kurulabilir.
Composer otomatik olarak bir kez yüklenir ve sistem genelinde kullanılabilir hale gelir. Composer, Laravel gibi modern PHP projelerinin geliştirilmesi sırasında sıkça kullanılan bir araçtır.
7. Composer aracılığıyla Laravel nasıl kurulur?
1️⃣ Terminale “Composer create-project” yazarak Laravel’i kurabilirsiniz 👇:
2️⃣ Composer kurulduktan sonra Laravel’in gerekli sürümünü indirin ve içeriğini sunucunuzdaki bir dizine aktarın. Daha sonra Laravel uygulamanızın kök dizininde tüm framework bağımlılıklarını kurmak için aşağıdaki komutu çalıştırın:
8. Laravel Middleware nedir?
Laravel Middleware, uygulamaya giren HTTP isteklerini değerlendirmek ve elemek için kullanışlı bir mekanizmadır. İstek ve yanıt arasında bir köprü oluşturur. Laravel Middleware yazılımlarının tümü app/Http/Middleware kayıt defterinde bulunur.
📍 Laravel Middleware syntax:
9. Laravel Eloquent nedir?
Laravel Eloquent, Laravel'in ORM (Object-Relational Mapping) sistemi olarak adlandırılan, veri tabanı etkileşimini yönetmek için kullanılan güçlü bir özelliktir.
Eloquent, veri tabanı tablolarıyla etkileşim kurma görevini kolaylaştırır. Veri tabanı kayıtlarını ekleme, güncelleme ve silme konusunda nesne odaklı bir yaklaşım sağlar. Aynı zamanda karmaşık SQL sorgularını yürütmek için kolay bir arayüz sunar.
10. PHP artisan nedir?
Artisan, Laravel'de bulunan bir komut satırı arayüzüdür. Artisan’ın avantajları şunlardır:
- ✅ Artisan, uygulamayı oluşturmaya yardımcı olabilecek bir dizi yararlı komut sağlar.
- ✅ Developar’ların işini kolaylaştıran ve zamandan tasarruf etmelerini sağlayan komut listesi sunar.
- ✅ Developer’ların özel komut yazmalarına olanak tanır.
- ✅ Uygulamanın verimliliğini artırır.
11. Artisan komutları nelerdir?
Mevcut tüm Artisan komutlarını listelemek için php artisan list komutu kullanılır.
- make:channel - Yeni bir kanal sınıfı oluşturur.
- make:command - Yeni bir Artisan komutu oluşturur.
- make:controller - Yeni bir denetleyici sınıfı oluşturur.
- make:event - Yeni bir event sınıfı oluşturur.
- make:exception - Yeni bir özel istisna sınıfı oluşturur.
- make:factory - Yeni bir model fabrikası oluştur.
- make :job - Yeni bir iş sınıfı oluşturur.
- make:mail - Yeni bir e-posta sınıfı oluşturur.
- make:migration - Yeni bir geçiş dosyası oluşturur.
- make:notification - Yeni bir bildirim sınıfı oluşturur.
12. Laravel’de özel bir Artisan komutu nasıl oluşturulur?
Laravel’de özel bir komut oluşturmak için terminal’e şu yazılır 👇:
Sonraki adımda komut, terminal’de yürütülür:
Yürütme işleminden sonra, dizinde app/console/Commands dosyası oluşturulmuş olur. Dosyanın adı da CreateEmployeeName olacaktır.
13. Laravel paketleri (packages) nedir?
Laravel'in çeşitli paket görevi gören modülleri vardır. Laravel Paket Yöneticisi, Laravel projesi için hızlı ama basit paket yönetimi sağlar. Bu paketler, veri tabanlarına erişmeyi ve bağımlılık enjeksiyonu yapmaya olanak tanır.
Laravel paketlerini kullanmanın en büyük faydalarından biri, yönlendirme, geçişler, testler, görünümler ve diğer birçok temel özellik gibi Laravel’in tüm özelliklerine erişmeyi sağlamasıdır. Ayrıca kod miktarını azaltan ve uygulamanın sürdürülebilirliğini artıran DRY Prensibine de uyarlar.
Laravel’de developer’lar kendi paketlerini oluşturabilirler. Ancak bunları sıfırdan oluşturmak yerine ücretsiz olarak sunulan birçok Laravel paketi kullanılabilir.
- ✔️ Spaces: Spaces, rolleri ve izinleri yönetmek için kullanılan bir pakettir.
- ✔️ Laravel Debugbar: Kullanıcıların uygulamaya geliştirici araç çubuğu eklemelerine yardımcı olur ve hata ayıklama amacıyla kullanılır.
- ✔️ Laravel User Authentication: Bu paket, kullanıcı kimlik doğrulaması yapmaya ve e-postaları doğrulamaya olanak tanır.
- ✔️ Socialite: OAuth kimlik doğrulamasını yönetmeyi kolaylaştıran bir pakettir. Kullanıcıların Facebook, Twitter, Google, GitHub ve BitBucket dahil olmak üzere en popüler sosyal ağlardan ve hizmetlerden bazıları aracılığıyla oturum açmasına olanak tanır.
- ✔️ Eloquent-Sluggable: Bu paket, bir dizeyi tek bir büyük/küçük harfe dönüştürerek ve boşlukları kaldırarak, URL dostu bir versiyon oluşturmayı sağlar.
- ✔️ No Captcha: Google reCaptcha doğrulamasını uygulayan ve formları spam'den koruyan bir pakettir.
14. Laravel route nedir?
Laravel'de tüm istekler route (rotalar) yardımıyla haritalanır. Route'lar, gelen HTTP isteklerini belirli işlemlere yönlendirmek için kullanılır.
Laravel'de yönlendirmeler şu kategorilere ayrılır:
1️⃣ Temel Yönlendirme (Basic Routing)
2️⃣ Rota Parametreleri (Route parameters)
3️⃣ Adlandırılmış Yönlendirmeler (Named Routes)
15. Larevel basic routing (temel yönlendirme) nedir?
Tüm uygulama rotaları app/routes.php dosyasında kayıtlıdır. Bu dosya Laravel'e yanıt vermesi gereken URI'leri bildirir.
16. Laravel adlandırılmış yönlendirmeler (Named Routes) nedir?
Adlandırılmış rotalar veya yönlendirmeler, Laravel'in önemli bir özelliğidir. Rota oluşturmanın kolay bir yolunu sunarlar. URL'ler oluştururken rotalara referans vermeye veya belirli rotalara yönlendirme yapmaya olanak tanır.
📍 Aşağıdaki kod, denetleyiciyle adlandırılmış rotalar oluşturmayı sağlar.
17. Database migration (veri tabanı geçişi) nedir? Artisan aracılığıyla migration nasıl oluşturulur?
Migration, uygulamanın veri tabanı şemasını kolayca değiştirmeye ve paylaşmaya olanak tanıyan yapılardır.
Migration verilerini oluşturmak için php artisan komutunu kullanılabilir 👇:
18. Laravel'de ters yönlendirme nedir?
Laravel'de ters yönlendirme (reverse routing), URL yollarını tanımlayıcı adlarına veya denetleyici yöntemlerine dönüştürme işlemidir. Bu, URL'yi dinamik olarak oluşturmaya ve değiştirmeye olanak tanır.
Örnek olarak, aşağıdaki gibi bir route tanımlamasını ele alalım:
Ters yönlendirme kullanarak, bu rotaya ilişkin URL'leri dinamik olarak oluşturabilirsiniz.
19. Laravel service container nedir?
Laravel servise container, sınıf bağımlılıklarını yönetmek ve bağımlılık enjeksiyonunu gerçekleştirmek için kullanılan bir araçtır. Service container, bağımlılığın nasıl çözülmesi gerektiğini belirtir.
20. Laravel'de bağımlılık enjeksiyonu nedir?
Bağımlılık enjeksiyonu, sabit kodlanmış sınıf bağımlılıklarını ayırmak için kullanılan bir yöntemdir. Laravel'de bağımlılık enjeksiyonu, sınıf bağımlılıklarını bir sınıfa enjekte etme işlemidir. Bu işlem, kodun temiz görünmesini ve daha hızlı çalışmasını sağlar.
21. Laravel kurulumu için gereken sistem gereksinimlerini nelerdir?
- PHP >= 5.4, PHP < 7
- Mccrypt PHP uzantısı
- OpenSSL PHP uzantısı
- PHP Mbstring uzantısı
- Tokenizer PHP uzantısı
PHP 5.5'ten itibaren bazı işletim sistemi dağıtımları PHP JSON uzantısının manuel kurulumunu gerektirebiliyor. Örneği; Ubuntu kullanırken aşağıdaki komutla kurulum yapılabilir 👇:
22. Laravel CSRF nedir?
CSRF yani Siteler Arası İstek Sahteciliği, bir saldırganın kimliği doğrulanmış bir kullanıcı adına eylemler gerçekleştirmesini içeren kötü amaçlı bir etkinlik/saldırı türüdür. Laravel, bir CSRF belirteci oluşturarak CSRF saldırılarına karşı koruma sağlar. Bu CSRF belirteci her kullanıcı için otomatik olarak oluşturulur.
23. Laravel CSRF nasıl kullanılır?
1️⃣ @csrf: Bu yöntem, HTML formunda gizli giriş alanını oluşturmaya yönelik bir blade şablonu yönergesidir.
2️⃣ csrf_field(): Bu yöntem, HTML formunda gizli giriş alanını oluşturmak için kullanılır.
3️⃣ csrf_token(): Bu işlev yalnızca rastgele bir dize verir ve gizli giriş alanı oluşturmaz.
24. Laravel sözleşmeleri (contracts) nedir?
Laravel'de sözleşmeler, çeşitli hizmetler ve bileşenlerle etkileşime geçmek için tutarlı ve standartlaştırılmış bir yol sağlayan bir dizi arayüz tanımlarıdır.
Sözleşmeler, bir hizmetin uygulanması ile ona bağlı olan kod arasında bir sözleşme oluşturur. Uygulanması gereken ortak bir dizi yöntemi tanımlarlar ve farklı uygulamalarda tutarlı davranışlar sağlarlar.
Laravel, işlevleri ve hizmetleri kapsayan önceden tanımlanmış bir dizi sözleşmeyle birlikte gelir. Örneğin:
- Illuminate\Contracts\Auth\Authenticatable: Kimliği doğrulanmış bir kullanıcıyı temsil eder.
- Illuminate\Contracts\Cache\Repository: Önbelleğe alma ve önbellek yönetimine ilişkin yöntemleri tanımlar.
- Illuminate\Contracts\Mail\Mailer: E-posta göndermek için yöntemler sağlar.
- Illuminate\Contracts\Routing\ResponseFactory: HTTP yanıtları oluşturmaya yönelik bir fabrikayı temsil eder.
25. Laravel’de özel sözleşmeler nasıl oluşturulur?
Uygulamaya özel arayüzleri tanımlamak için özel sözleşmeler de oluşturulabilir.
26. Laravel'de sorgu günlüğü (query log) nasıl etkinleştirilir?
Laravel isteğe bağlı olarak yürütülen tüm sorguları belleğe kaydedebilir. Ancak, çok sayıda satırın eklenmesi gibi bazı durumlarda bu, uygulamanın fazla bellek kullanmasına neden olabilir.
Sorgu günlüğünü etkinleştirmek için activeQueryLog yöntemi kullanılabilir 👇:
27. Laravel motoru hangi şablonu kullanır?
Laravel, Blade şablonlama motoruyla birlikte gelir. Blade görünümleriyle ilgili dosyalar kaynaklar/görünümler dizininde uzantılı olarak bulunur.
28. Laravel'de dd() kullanımı nedir?
Dump and Dies'ın kısaltması olan Laravel'deki dd(), bir değişkenin içeriğini tarayıcıya aktarmak ve betiğin daha fazla yürütülmesini durdurmak için kullanılan yardımcı bir işlevdir.
29. Laravel'de önbellek nasıl temizlenir?
Laravel'de birincil önbellek, uygulamada manuel olarak önbelleğe alınan her şeyi saklar. Laravel’de önbelleği temizlemek için 2 temel yöntem vardır:
1️⃣ Artisan komutunu kullanarak Laravel önbelleğini temizleyebilirsiniz.
2️⃣ Komut satırını kullanarak Laravel önbelleğini temizleyebilirsiniz.
- Route Önbelleğini Temizleme: php artisan route:cache
- Uygulama Önbelleğini Temizleme: php artisan cache:clear
- Yapılandırma Önbelleğini Temizleme: php artisan config:clear
- Görünüm Önbelleğini Temizleme: php artisan view:clear
30. Laravel Nova nedir?
Laravel Nova, Laravel web uygulamaları için bir yönetim arayüzüdür. Bireysel gereksinimlere göre kolayca özelleştirilebilecek özel yönetici panellerini hızlı bir şekilde oluşturmaya yönelik bir dizi araç ve arayüz içerir. Veri filtreleme, veri arama, özel ölçümler, görselleştirmeler ve üçüncü taraf araç hizmetleri sunar.