Created
August 16, 2025 14:23
-
-
Save mahammad/5481e6877e2041ee3025c3ae25da41b2 to your computer and use it in GitHub Desktop.
Revisions
-
mahammad created this gist
Aug 16, 2025 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,168 @@ # 📌 Laravel Middle Backend Müsahibə Mövzuları və Cavabları --- ## 1. **Laravel Request Lifecycle** **Sual:** Laravel-də request gəldikdə ilk hansı fayl işləyir? **Cavab:** `public/index.php` faylı ilk işləyir. Buradan `bootstrap/app.php` çağrılır və application bootstrap olunur. Sonra kernel (`App\Http\Kernel`) işləyir, middleware-lər işə düşür, routing icra olunur və controller cavabı response-a çevrilərək geri qaytarılır. --- ## 2. **Routing və Controller** **Sual:** Route model binding necə işləyir? **Cavab:** Model binding route parametrlərini avtomatik olaraq model instansiyasına çevirir. ```php Route::get('/users/{user}', function(User $user) { return $user; }); ``` Burada `{user}` ID-si avtomatik olaraq `User` modelindən tapılır. Əgər tapılmazsa `404` qaytarır. --- ## 3. **Eloquent ORM və Relationships** **Sual:** `hasManyThrough` münasibəti nədir? **Cavab:** `hasManyThrough` əlaqəsi vasitəsilə bir model başqa bir modelə aralıq model üzərindən qoşulur. Məsələn: **Country → User → Post** ```php class Country extends Model { public function posts() { return $this->hasManyThrough(Post::class, User::class); } } ``` Bu, ölkənin bütün postlarını istifadəçilər vasitəsilə gətirir. --- ## 4. **Authentication və Authorization** **Sual:** Gate və Policy fərqi nədir? **Cavab:** * **Gate** – sadə closure əsaslı permission yoxlamasıdır (`Gate::define`). * **Policy** – müəyyən bir model üçün CRUD səlahiyyətlərini idarə edən class-dır. Məsələn, `PostPolicy` ilə yalnız yazının müəllifi onu silə bilər. --- ## 5. **Validation və Form Request** **Sual:** Form Request istifadə etməyin üstünlükləri nədir? **Cavab:** * Validation qaydaları controller-dən ayrılır → daha təmiz kod. * `authorize()` metodu ilə icazə yoxlamaları edilir. * Avtomatik olaraq `$errors` dəyişənində səhvlər gəlir. --- ## 6. **Caching və Performance** **Sual:** Cache-də “tag” nə işə yarayır? **Cavab:** Cache tag-lar eyni kateqoriyaya aid olan cache-ləri bir yerdə idarə etməyə imkan verir. ```php Cache::tags(['products'])->put('p1', $product, 3600); Cache::tags(['products'])->flush(); // bütün məhsul cache-lərini silir ``` --- ## 7. **Queues və Jobs** **Sual:** Laravel job uğursuz olduqda nə baş verir? **Cavab:** Job retry sayı bitdikdə o **failed\_jobs** cədvəlində saxlanılır. `php artisan queue:failed` ilə baxmaq, `queue:retry {id}` ilə yenidən işə salmaq olar. --- ## 8. **API Development** **Sual:** Laravel Sanctum nə üçündür? **Cavab:** Sanctum API-lər üçün **SPA authentication** və **token-based API authentication** təklif edir. Passport-dan fərqi odur ki, daha yüngül və sadədir. --- ## 9. **Testing** **Sual:** Database testlərini necə izolyasiya edirsiniz? **Cavab:** * `RefreshDatabase` trait istifadə olunur → hər testdən əvvəl migrate və rollback. * Yaxud in-memory SQLite istifadə edilir. ```php use RefreshDatabase; ``` --- ## 10. **Repository və Service Layer** **Sual:** Repository pattern nə üçündür? **Cavab:** Repository model ilə business logic arasındakı asılılığı azaldır. Məsələn, Eloquent-dən MySQL-dən MongoDB-yə keçmək istəsək, yalnız repository dəyişir, controller eyni qalır. --- ## 11. **Observer və Events** **Sual:** Observer nədir? **Cavab:** Observer model hadisələrini (creating, updating, deleting və s.) dinləyən class-dır. Məsələn, `UserObserver` istifadəçi yaradıldıqda avtomatik mail göndərə bilər. --- ## 12. **Scheduler və Cron Jobs** **Sual:** Laravel Scheduler necə işləyir? **Cavab:** `schedule:run` komandası hər dəqiqə `cron` ilə çağırılır. İstədiyin əmrləri `app/Console/Kernel.php`-də təyin edirsən: ```php protected function schedule(Schedule $schedule) { $schedule->command('emails:send')->dailyAt('10:00'); } ``` --- ## 13. **Migration-lar və Rollback** **Sual:** Rollback hansı hallarda problem yarada bilər? **Cavab:** Əgər cədvəldə data varsa və migration dəyişiklikləri data ilə uyğun gəlmirsə (məs: sütun silmək), rollback zamanı data itirilə bilər. --- ## 14. **Security** **Sual:** CSRF qorunması necə işləyir? **Cavab:** Hər form Laravel tərəfindən avtomatik `_token` input ilə gəlir. `VerifyCsrfToken` middleware bu tokeni session ilə müqayisə edir. Uyğun gəlməzsə request reject edilir. --- ## 15. **Optimization** **Sual:** `php artisan optimize` nələri edir? **Cavab:** * Config cache (`config:cache`) * Route cache (`route:cache`) * Event cache (`event:cache`) * View cache (`view:cache`) Bunlar production performansı artırır.