Laravel — PHP tilida veb-ilovalar yaratish uchun mo‘ljallangan ochiq kodli framework. U HTTP marshrutlash, controller, template, ma’lumotlar bazasi, autentifikatsiya, navbat va testlash vositalarini yagona ekotizimda birlashtiradi. Laravel MVC tamoyillariga tayangan holda biznes mantiqi, ma’lumot modeli va foydalanuvchi interfeysini ajratishga yordam beradi.
So‘rovning qayta ishlanishi
Veb-server so‘rovni Laravel ilovasining kirish fayliga uzatadi. Framework ishga tushgach, service container bog‘liqliklarni yaratadi, middleware so‘rovni tekshiradi va router mos route yoki controller metodini tanlaydi. Controller ma’lumotlar qatlamiga murojaat qilib, JSON javob yoki Blade template asosidagi HTML qaytarishi mumkin.
Route sodda shaklda quyidagicha yoziladi:
Route::get('/articles/{id}', [ArticleController::class, 'show']);
Route parametri controllerga uzatiladi. Route model binding ishlatilsa, identifikator bo‘yicha model nusxasini topish jarayoni framework tomonidan bajariladi.
Service container va provider
Service container klasslar orasidagi bog‘liqliklarni boshqaradi. Controller konstruktorida interfeys ko‘rsatilsa, container unga mos implementatsiyani yaratishi mumkin. Bu dependency injection usuli testda haqiqiy xizmat o‘rniga soxta obyekt qo‘yishni yengillashtiradi. Service providerlar ilova xizmatlarini ro‘yxatdan o‘tkazish va ishga tayyorlash uchun ishlatiladi.
Eloquent ORM
Eloquent bazadagi jadvalni model klassi bilan ifodalaydi. Model orqali yozuv topish, filtrlash, yangilash va bog‘lanishlarni yuklash mumkin. hasMany, belongsTo va boshqa relation metodlari jadvallar o‘rtasidagi aloqani bildiradi. Query builder parametrlarni xavfsiz bog‘lash orqali SQL so‘rovlarini yaratadi.
Migratsiyalar sxema o‘zgarishlarini PHP fayllarida saqlaydi. Seeder boshlang‘ich yoki sinov ma’lumotlarini kiritadi, factory esa test uchun model namunalarini hosil qiladi. Bu vositalar ma’lumotlar bazasi holatini jamoa va muhitlar orasida qayta tiklashga xizmat qiladi.
Blade va frontend qatlami
Blade — Laravelning server tomonidagi template tizimi. U layout, section, component va shart operatorlarini qo‘llab-quvvatlaydi. Template qiymatlari odatda HTMLga xavfsiz chiqarish uchun ekranlanadi. Laravel faqat Blade bilan cheklanmaydi; u JSON API sifatida ishlashi yoki JavaScript frontend bilan bog‘lanishi ham mumkin.
Navbat va hodisalar
Email yuborish, fayl qayta ishlash yoki tashqi API bilan uzoq amal queue job sifatida fon workeriga uzatiladi. Event va listener mexanizmi bir hodisaga javob beruvchi vazifalarni asosiy koddan ajratadi. Queue ishlatilganda xabarni qayta urinish, muvaffaqiyatsiz joblar va idempotent bajarilish alohida nazorat qilinadi.
Xavfsizlik va deploy
Framework CSRF himoyasi, session, parol xeshlash, authorization policy va kiritma validatsiyasini taqdim etadi. Konfiguratsiya .env orqali muhitdan olinadi, ammo maxfiy qiymatlar repositoryga yozilmaydi. Ishlab chiqarishda web server, PHP-FPM, scheduler, queue worker, kesh va loglar birgalikda boshqariladi.
Artisan va test muhiti
Artisan — Laravelning buyruq qatori interfeysi. U serverni lokal ishga tushirish, migratsiya qo‘llash, keshni tozalash, queue worker boshqarish va kod skeletlarini yaratish uchun buyruqlar beradi. Loyiha o‘z domeniga mos custom Artisan command ham yaratishi mumkin. Test qatlamida HTTP so‘rovini simulyatsiya qilish, ma’lumotlar bazasi holatini tekshirish va tashqi xizmatlarni fake bilan almashtirish vositalari mavjud. Container orqali bog‘liqlikni almashtirish testni haqiqiy tarmoqdan ajratadi. Migratsiya va queue ishtirok etadigan testlar izolyatsiya qilinmasa, bir test qoldirgan holat boshqasining natijasiga ta’sir qilishi mumkin.
Artisan buyruqlari ishlab chiqarishda noto‘g‘ri muhitga qo‘llanmasligi uchun konfiguratsiya va deploy vakolati bilan cheklanadi. Migratsiya buyrug‘ining muvaffaqiyati ham yangi kodning eski schema bilan vaqtinchalik mosligini avtomatik kafolatlamaydi.
Bog‘liq tushunchalar
PHP, MVC, Eloquent ORM, Blade, middleware, Composer, service container