🚀 Laravel Performance Hack: Query’larni Cache bilan Tezlashtiring!
Ko‘pchilik Laravel’da bir xil so‘rovlarni har safar qayta ishga tushiradi va API’larning sekinlashishiga sabab bo‘ladi. 😩
❌ Oddiy, lekin sust usul:
Bu kod har safar bazadan ma’lumot olib keladi, bu esa serverga ortiqcha yuk tushirishiga olib keladi. 🐌
✅ Tezroq va samaraliroq usul (Cache ishlatamiz! 🚀)
🔹 Foydasi:
✅ Query’larni optimallashtiradi
✅ Server yukini kamaytiradi
✅ Sahifalar tezroq yuklanadi
Laravel’ni yanada tez va samarali qilish uchun caching’dan unumli foydalaning! 🔥
#Laravel #PHP #Optimization #Performance #CodingTips
Ko‘pchilik Laravel’da bir xil so‘rovlarni har safar qayta ishga tushiradi va API’larning sekinlashishiga sabab bo‘ladi. 😩
❌ Oddiy, lekin sust usul:
$users = User::where('status', 'active')->get();Bu kod har safar bazadan ma’lumot olib keladi, bu esa serverga ortiqcha yuk tushirishiga olib keladi. 🐌
✅ Tezroq va samaraliroq usul (Cache ishlatamiz! 🚀)
$users = Cache::remember('active_users', now()->addMinutes(10), function () {
return User::where('status', 'active')->get();
});🔹 Foydasi:
✅ Query’larni optimallashtiradi
✅ Server yukini kamaytiradi
✅ Sahifalar tezroq yuklanadi
Laravel’ni yanada tez va samarali qilish uchun caching’dan unumli foydalaning! 🔥
#Laravel #PHP #Optimization #Performance #CodingTips
🔥6👍3
🚀 Laravel Lifehack: Mass Assignment’ni To‘g‘ri Ishlatish!
Ko‘pchilik create() yoki update() ishlatishda xatoga yo‘l qo‘yib, qo‘shimcha muammolarni keltirib chiqaradi! ⚠️
❌ Noto‘g‘ri usul (Har bir ustunni alohida belgilash kerak! 🐢)
✅ To‘g‘ri usul (Mass Assignment bilan kodni soddalashtiring! ⚡️)
📌 Muhim! User modelida $fillable e’lon qilingan bo‘lishi kerak:
✅ Kodni soddalashtiradi
✅ Kamroq yozish – tezroq ishlash! 🚀
✅ SQL Injection va xatolar xavfini kamaytiradi
Laravel’da to‘g‘ri usullarni ishlatib, kod samaradorligini oshiring! 🔥
#Laravel #PHP #Optimization #BestPractices #Security
Ko‘pchilik create() yoki update() ishlatishda xatoga yo‘l qo‘yib, qo‘shimcha muammolarni keltirib chiqaradi! ⚠️
❌ Noto‘g‘ri usul (Har bir ustunni alohida belgilash kerak! 🐢)
$user = new User();
$user->name = 'Azizbek';
$user->email = 'azizbek@example.com';
$user->password = bcrypt('secret');
$user->save();
✅ To‘g‘ri usul (Mass Assignment bilan kodni soddalashtiring! ⚡️)
User::create([
'name' => 'Azizbek',
'email' => 'azizbek@example.com',
'password' => bcrypt('secret'),
]);
📌 Muhim! User modelida $fillable e’lon qilingan bo‘lishi kerak:
protected $fillable = ['name', 'email', 'password'];
✅ Kodni soddalashtiradi
✅ Kamroq yozish – tezroq ishlash! 🚀
✅ SQL Injection va xatolar xavfini kamaytiradi
Laravel’da to‘g‘ri usullarni ishlatib, kod samaradorligini oshiring! 🔥
#Laravel #PHP #Optimization #BestPractices #Security
🔥7👍3👏1
Laravel Lifehack: whenLoaded bilan Resource-ni Optimallashtirish
🚀 Laravelda Eloquent Resource ishlatganda, ba’zi munosabatlar (relations) har doim load() qilinmasligi mumkin. Bunday holatda $this->whenLoaded() ishlatish orqali ortiqcha query’larni oldini olish mumkin!
🎯 Muammo: Har doim user munosabatini chaqirish
🔴 Muammo: Agar with('user') qilinmasa, bu kod N+1 problem chiqarishi mumkin!
✅ Yechim: whenLoaded ishlatish
🔥 Foydasi:
✔️ Ortiqcha query’lar yo‘qoladi – Faqat kerakli bo‘lsa, user yuklanadi!
✔️ API tezligi oshadi – Har doim UserResource ishlamaydi!
✔️ N+1 muammosi oldi olinadi – Agar with('user') bo‘lmasa, Laravel null qaytaradi!
#Laravel #PHP #Optimization #BestPractices #Security
🚀 Laravelda Eloquent Resource ishlatganda, ba’zi munosabatlar (relations) har doim load() qilinmasligi mumkin. Bunday holatda $this->whenLoaded() ishlatish orqali ortiqcha query’larni oldini olish mumkin!
🎯 Muammo: Har doim user munosabatini chaqirish
public function toArray($request)
{
return [
'id' => $this->id,
'title' => $this->title,
'user' => new UserResource($this->user), // ❌ User doim yuklanadi!
];
}
🔴 Muammo: Agar with('user') qilinmasa, bu kod N+1 problem chiqarishi mumkin!
✅ Yechim: whenLoaded ishlatish
public function toArray($request)
{
return [
'id' => $this->id,
'title' => $this->title,
'user' => new UserResource($this->whenLoaded('user')), // ✅ Faqat user yuklangan bo‘lsa, qo‘shiladi
];
}
🔥 Foydasi:
✔️ Ortiqcha query’lar yo‘qoladi – Faqat kerakli bo‘lsa, user yuklanadi!
✔️ API tezligi oshadi – Har doim UserResource ishlamaydi!
✔️ N+1 muammosi oldi olinadi – Agar with('user') bo‘lmasa, Laravel null qaytaradi!
#Laravel #PHP #Optimization #BestPractices #Security
🔥3👍1👏1
🚀 Laravel Octane bilan API’larni 100x tezlashtirish
Laravel API’lari ko‘pincha sekin ishlaydi, chunki har bir so‘rovda framework boshidan yuklanadi. ProPay loyihasida men Octane (Swoole) ishlatib, 3-4 soniyalik requestlarni 30-40ms gacha tushirdim! 😎
🔹 Laravel Octane nima qila oladi?
⚡️ Har bir request uchun Laravelni qayta yuklamaydi – Foydalanishga tayyor ilova xotirada saqlanadi.
⚡️ Super tezkor ishlaydi – PHP-FPM ga qaraganda kamida 10 baravar tezroq!
⚡️ Parallel so‘rovlarni qayta ishlaydi – Birdaniga ko‘p requestlarni tez bajaradi.
⚡️ WebSocket, real-time va async task’larni qo‘llab-quvvatlaydi.
⚡️ Database ulanishlarini saqlab qoladi – Har safar qayta bog‘lanish shart emas.
🔥 ProPay loyihasida Octane bilan nima o‘zgardi?
🔹 Ilgarigi request vaqti – ⏳ 3-4 soniya.
🔹 Octane bilan – ⚡️ 30 - 40ms.
💡 Soddaroq qilib aytganda, Laravel API’lar endi 100x tez ishlaydi!
📌 Laravel Octane qachon ishlatish kerak?
✅ Tezkor API’lar uchun – Past latency talab qilinadigan joylarda.
✅ WebSocket va real-time chat uchun – Har doim ochiq turgan serverlar.
✅ Ko‘p request keladigan tizimlar uchun – 1 sekundda minglab so‘rov bo‘lsa.
❌ Oddiy admin panel yoki kam trafficli saytlar uchun shart emas.
🎯 Xulosa
🚀 Laravel Octane bilan API’lar tezligi 100 baravar oshdi!
🚀 PHP har bir requestda Laravelni qayta yuklamaydi, natijada maksimal performance!
🚀 Database ulanishlari, session va cache optimallashtirildi!
#Laravel #Octane #Performance #Optimization #BestPractice
Laravel API’lari ko‘pincha sekin ishlaydi, chunki har bir so‘rovda framework boshidan yuklanadi. ProPay loyihasida men Octane (Swoole) ishlatib, 3-4 soniyalik requestlarni 30-40ms gacha tushirdim! 😎
🔹 Laravel Octane nima qila oladi?
⚡️ Har bir request uchun Laravelni qayta yuklamaydi – Foydalanishga tayyor ilova xotirada saqlanadi.
⚡️ Super tezkor ishlaydi – PHP-FPM ga qaraganda kamida 10 baravar tezroq!
⚡️ Parallel so‘rovlarni qayta ishlaydi – Birdaniga ko‘p requestlarni tez bajaradi.
⚡️ WebSocket, real-time va async task’larni qo‘llab-quvvatlaydi.
⚡️ Database ulanishlarini saqlab qoladi – Har safar qayta bog‘lanish shart emas.
🔥 ProPay loyihasida Octane bilan nima o‘zgardi?
🔹 Ilgarigi request vaqti – ⏳ 3-4 soniya.
🔹 Octane bilan – ⚡️ 30 - 40ms.
💡 Soddaroq qilib aytganda, Laravel API’lar endi 100x tez ishlaydi!
📌 Laravel Octane qachon ishlatish kerak?
✅ Tezkor API’lar uchun – Past latency talab qilinadigan joylarda.
✅ WebSocket va real-time chat uchun – Har doim ochiq turgan serverlar.
✅ Ko‘p request keladigan tizimlar uchun – 1 sekundda minglab so‘rov bo‘lsa.
❌ Oddiy admin panel yoki kam trafficli saytlar uchun shart emas.
🎯 Xulosa
🚀 Laravel Octane bilan API’lar tezligi 100 baravar oshdi!
🚀 PHP har bir requestda Laravelni qayta yuklamaydi, natijada maksimal performance!
🚀 Database ulanishlari, session va cache optimallashtirildi!
#Laravel #Octane #Performance #Optimization #BestPractice
🔥5👍3👏1
#laravel #tutorial #best_practice #redis
Assalomu Alaykum 👋
Laravel x Redis (part 1) ✅
Bu yo'l bilan professional dasturchi bo'ling 📈
https://youtu.be/42o5mA9oVB4?si=0MEndiW1ekS28CKP
Assalomu Alaykum 👋
Laravel x Redis (part 1) ✅
Bu yo'l bilan professional dasturchi bo'ling 📈
https://youtu.be/42o5mA9oVB4?si=0MEndiW1ekS28CKP
YouTube
Laravel x Redis: Nima uchun kerak va qanday o‘rnatiladi? (Part 1) #laravel #php #bestpractice #redis
Laravel x Redis: Nima uchun kerak va qanday o‘rnatiladi? (Part 1)
Notion: https://rain-screen-9aa.notion.site/Laravel-x-Redis-21f7c6c38f704af5a48332ed89db4253
Telegram kanal: https://t.me/azizdevfull
Notion: https://rain-screen-9aa.notion.site/Laravel-x-Redis-21f7c6c38f704af5a48332ed89db4253
Telegram kanal: https://t.me/azizdevfull
🔥3👍1👏1
#laravel #tutorial #best_practice #redis
Assalomu Alaykum 👋
Laravel x Redis (part 2) ✅
Bu yo'l bilan professional dasturchi bo'ling 📈
https://youtu.be/gd-bvDPygTU?si=EaNse_cbQoT7TGrA
Assalomu Alaykum 👋
Laravel x Redis (part 2) ✅
Bu yo'l bilan professional dasturchi bo'ling 📈
https://youtu.be/gd-bvDPygTU?si=EaNse_cbQoT7TGrA
YouTube
Laravel x Redis: Nima uchun kerak va qanday ishlatiladi? (Part 2) #laravel #php #bestpractice #redis
Laravel x Redis: Nima uchun kerak va qanday ishlatiladi? (Part 2)
Github Repo: https://github.com/azizdevfull/redis-tuto
Telegram kanal: https://t.me/azizdevfull
Github Repo: https://github.com/azizdevfull/redis-tuto
Telegram kanal: https://t.me/azizdevfull
🔥5👍4
📌 Eloquent'da when() funksiyasidan foydalanish
Ko‘pchilik if bloklaridan foydalansa ham, when() orqali kodni ancha ixcham qilish mumkin!
⚡️ Misol:
✅ Agar request da role bo‘lsa, where() qo‘llanadi.
✅ Agar bo‘lmasa, oddiy User::get() ishlaydi.
🔥 Laravel kodini ixcham va chiroyli qilish uchun when() dan foydalaning!
#Laravel #when #Performance #Optimization #BestPractice
Ko‘pchilik if bloklaridan foydalansa ham, when() orqali kodni ancha ixcham qilish mumkin!
⚡️ Misol:
$users = User::when(request('role'), function ($query, $role) {
return $query->where('role', $role);
})->get();✅ Agar request da role bo‘lsa, where() qo‘llanadi.
✅ Agar bo‘lmasa, oddiy User::get() ishlaydi.
🔥 Laravel kodini ixcham va chiroyli qilish uchun when() dan foydalaning!
#Laravel #when #Performance #Optimization #BestPractice
🔥4👍2👏1
⚡️ Laravel + Node.js + Redis – Real-time chat nechta foydalanuvchini ko‘tara oladi?
Men yaqinda Laravel + Node.js + Redis yordamida real-time chat yaratdim. Ammo bir savol tug‘iladi: bu tizim bir vaqtning o‘zida nechta foydalanuvchini ko‘tara oladi? 🤔
🔍 Texnologiyalar:
✅ Laravel – Backend API
✅ Node.js + Socket.io – Real-time aloqani ta’minlash
✅ Redis – WebSocket xabarlarini tez uzatish
💡 Chat qanday ishlaydi?
1) Laravel API orqali user autentifikatsiya qiladi
2) Node.js + Socket.io chat xabarlarini Redis pub/sub orqali boshqaradi
3) Redis – chat serverlar o‘rtasida tezkor ulanishni ta’minlaydi
📊 Yuklama testi natijalari (taxminiy):
🚀 10,000 ta parallel user hech qanday kechikishsiz ishlashi mumkin
🚀 50,000+ user bilan Redis hali ham stabil ishlashi mumkin
🚀 100,000+ user da WebSocket ulanishlar soni oshib ketib, Redis Cluster + Load Balancer kerak bo‘lishi mumkin
🔧 Yaxshiroq ishlashi uchun nima qilish kerak?
1️⃣ Redis Cluster – katta hajmli ulanishlarni boshqarish
2️⃣ Horizontally Scaling (Ko‘paytirish) – bir nechta Node.js serverlarini ishlatish
3️⃣ Load Balancer – Traffikni teng taqsimlash
📌 Xulosa:
Oddiy Redis konfiguratsiyasi bilan 50K user hech qanday muammosiz ishlaydi. Katta miqdordagi foydalanuvchilar uchun Redis Cluster + Load Balancer qo‘shish kerak.
Men yaqinda Laravel + Node.js + Redis yordamida real-time chat yaratdim. Ammo bir savol tug‘iladi: bu tizim bir vaqtning o‘zida nechta foydalanuvchini ko‘tara oladi? 🤔
🔍 Texnologiyalar:
✅ Laravel – Backend API
✅ Node.js + Socket.io – Real-time aloqani ta’minlash
✅ Redis – WebSocket xabarlarini tez uzatish
💡 Chat qanday ishlaydi?
1) Laravel API orqali user autentifikatsiya qiladi
2) Node.js + Socket.io chat xabarlarini Redis pub/sub orqali boshqaradi
3) Redis – chat serverlar o‘rtasida tezkor ulanishni ta’minlaydi
📊 Yuklama testi natijalari (taxminiy):
🚀 10,000 ta parallel user hech qanday kechikishsiz ishlashi mumkin
🚀 50,000+ user bilan Redis hali ham stabil ishlashi mumkin
🚀 100,000+ user da WebSocket ulanishlar soni oshib ketib, Redis Cluster + Load Balancer kerak bo‘lishi mumkin
🔧 Yaxshiroq ishlashi uchun nima qilish kerak?
1️⃣ Redis Cluster – katta hajmli ulanishlarni boshqarish
2️⃣ Horizontally Scaling (Ko‘paytirish) – bir nechta Node.js serverlarini ishlatish
3️⃣ Load Balancer – Traffikni teng taqsimlash
📌 Xulosa:
Oddiy Redis konfiguratsiyasi bilan 50K user hech qanday muammosiz ishlaydi. Katta miqdordagi foydalanuvchilar uchun Redis Cluster + Load Balancer qo‘shish kerak.
🔥4👍3
🔍 Vite.js qanday o‘qiladi?
✅ To‘g‘ri variant: "Vit"
❌ Noto‘g‘ri variantlar:
— Vayt
— Vitey
— Vitya
— Vitamin
⚠️ Agar siz ham "Vayt" deb o‘ylagan bo‘lsangiz, iltimos:
💡 Eslatma: Vite fransuzcha "vite" (tez) so‘zidan kelib chiqqan bo‘lib, "Vit" deb talaffuz qilinadi. 🚀
#Vite #Frontend #JS #TalaffuzMasalasi
✅ To‘g‘ri variant: "Vit"
❌ Noto‘g‘ri variantlar:
— Vayt
— Vitey
— Vitya
— Vitamin
⚠️ Agar siz ham "Vayt" deb o‘ylagan bo‘lsangiz, iltimos:
npm uninstall vite && sudo apt install fonetika
💡 Eslatma: Vite fransuzcha "vite" (tez) so‘zidan kelib chiqqan bo‘lib, "Vit" deb talaffuz qilinadi. 🚀
#Vite #Frontend #JS #TalaffuzMasalasi
👍3😁2😱1
💻 Hosting vs VPS – Qaysi biri kerak?
✅ Hosting tanlang, agar:
🔹 Saytingiz kichik va trafik kam bo‘lsa
🔹 Texnik ishlarga vaqt sarflamoqchi bo‘lmasangiz
🔹 WordPress yoki oddiy blog yuritmoqchi bo‘lsangiz
🚀 VPS tanlang, agar:
🔹 Kuchli backend (Laravel, Node.js, e.t.c) ishlatsangiz
🔹 Trafik ko‘p bo‘lsa va serverni o‘zingiz boshqarmoqchi bo‘lsangiz
🔹 O‘ziga xos konfiguratsiya kerak bo‘lsa (custom software, AI, mikroservislar)
#VPS #Hosting #Server #Laravel #WebDevelopment #DevOps #Backend
✅ Hosting tanlang, agar:
🔹 Saytingiz kichik va trafik kam bo‘lsa
🔹 Texnik ishlarga vaqt sarflamoqchi bo‘lmasangiz
🔹 WordPress yoki oddiy blog yuritmoqchi bo‘lsangiz
🚀 VPS tanlang, agar:
🔹 Kuchli backend (Laravel, Node.js, e.t.c) ishlatsangiz
🔹 Trafik ko‘p bo‘lsa va serverni o‘zingiz boshqarmoqchi bo‘lsangiz
🔹 O‘ziga xos konfiguratsiya kerak bo‘lsa (custom software, AI, mikroservislar)
#VPS #Hosting #Server #Laravel #WebDevelopment #DevOps #Backend
🔥4👍2
🔷 Laravelda Multiple Database – Nega ishlatish kerak?
Ko‘pchilik uchun bitta database kifoya qiladi, lekin ayrim holatlarda bir nechta database ishlatish shart:
✅ 1. Ma’lumotlarni ajratish – Masalan, asosiy database user ma’lumotlarini saqlasa, log va statistikalar boshqa database da bo‘lsa, asosiy bazaga yuk tushmaydi.
✅ 2. Yangi va eski tizimlarni bog‘lash – Agar eski database bilan ishlashingiz kerak bo‘lsa, uni yangi loyihaga qo‘shish osonlashadi.
✅ 3. Microservices arxitekturasi – Har bir xizmat (auth, payments, orders) o‘z bazasiga ega bo‘lsa, tizim mustahkam va kengayuvchan bo‘ladi.
✅ 4. Turli xildagi database turlari – Masalan, asosiy ma’lumotlar MySQL da, analytics ma’lumotlari esa MongoDB da saqlanishi mumkin.
📌 Laravelda buni qanday ishlatish kerak?
🔹 config/database.php faylida qo‘shimcha connection qo‘shing:
🔹 Kerakli modelga connection belgilang:
🔹 Query Builder orqali ishlating:
❌ Noto‘g‘ri yondashuv:
🚫 Har doim DB::connection() bilan ishlash – kodni chalkashtirib yuboradi.
🚫 Transactionlar har doim bitta database ichida bo‘lishi kerak, aks holda ishlamaydi!
#Laravel #BestPractice #database
Ko‘pchilik uchun bitta database kifoya qiladi, lekin ayrim holatlarda bir nechta database ishlatish shart:
✅ 1. Ma’lumotlarni ajratish – Masalan, asosiy database user ma’lumotlarini saqlasa, log va statistikalar boshqa database da bo‘lsa, asosiy bazaga yuk tushmaydi.
✅ 2. Yangi va eski tizimlarni bog‘lash – Agar eski database bilan ishlashingiz kerak bo‘lsa, uni yangi loyihaga qo‘shish osonlashadi.
✅ 3. Microservices arxitekturasi – Har bir xizmat (auth, payments, orders) o‘z bazasiga ega bo‘lsa, tizim mustahkam va kengayuvchan bo‘ladi.
✅ 4. Turli xildagi database turlari – Masalan, asosiy ma’lumotlar MySQL da, analytics ma’lumotlari esa MongoDB da saqlanishi mumkin.
📌 Laravelda buni qanday ishlatish kerak?
🔹 config/database.php faylida qo‘shimcha connection qo‘shing:
'connections' => [
'logs_db' => [
'driver' => 'mysql',
'host' => env('LOGS_DB_HOST'),
'database' => env('LOGS_DB_DATABASE'),
],
],
🔹 Kerakli modelga connection belgilang:
class Log extends Model
{
protected $connection = 'logs_db';
}
🔹 Query Builder orqali ishlating:
DB::connection('logs_db')->table('logs')->insert([...]);❌ Noto‘g‘ri yondashuv:
🚫 Har doim DB::connection() bilan ishlash – kodni chalkashtirib yuboradi.
🚫 Transactionlar har doim bitta database ichida bo‘lishi kerak, aks holda ishlamaydi!
#Laravel #BestPractice #database
🔥2👍1
Hamma o‘zini boshqachaman deb o‘ylaydi. Agar shunday bo‘lsa, men boshqalar shunday o‘ylashini bilaman... va shu sababli men HAQIQATDAN ham boshqachaman! 🤯🧠✨
Agar siz ham shunday o‘ylagan bo‘lsangiz... men allaqachon buni bilardim! 😃
Agar siz ham shunday o‘ylagan bo‘lsangiz... men allaqachon buni bilardim! 😃
😁7🤯2
Мен жеңілдім, себебі әлсізбін, ештеңе істеген жоқпын, істей алмадым.
😢4
🐰 RabbitMQ nima uchun kerak?
Kodda “qimmat” vazifalarni (masalan: email, to‘lov, bildirishnoma) background-ga o‘tkazish kerak bo‘lsa — RabbitMQ yordam beradi.
✅ Message Broker – service-lar o‘zaro xabar almashadi
✅ Queue – navbatga qo‘yadi, navbati bilan ishlaydi
✅ Reliable – xabar yo‘qolmaydi, qayta yuboriladi
🎯 Katta tizimlar uchun Redis emas — aynan RabbitMQ kerak!
#Laravel #BestPractice #rabbitmq
Kodda “qimmat” vazifalarni (masalan: email, to‘lov, bildirishnoma) background-ga o‘tkazish kerak bo‘lsa — RabbitMQ yordam beradi.
✅ Message Broker – service-lar o‘zaro xabar almashadi
✅ Queue – navbatga qo‘yadi, navbati bilan ishlaydi
✅ Reliable – xabar yo‘qolmaydi, qayta yuboriladi
🎯 Katta tizimlar uchun Redis emas — aynan RabbitMQ kerak!
#Laravel #BestPractice #rabbitmq
🔥4👍1👏1
🎯 Why use DTO (Data Transfer Object)?
Ko‘pchilik Requestni to‘g‘ridan-to‘g‘ri modelga uzatadi:
Bu kichik loyihada ishlaydi. Lekin loyihangiz o‘sgan sayin validation, authorization, transformatsiya, mapping — hammasi Controllerda aralashib ketadi.
🔄 DTO yordamida esa:
1) request'dan faqat kerakli ma'lumot ajratiladi
2) typelar aniq bo‘ladi (misol: string $email, Carbon $birthday)
3) Service yoki Action klasslarga toza data uzatiladi
📦 DTO — kod arxitekturasini modular va testga qulay qiladi.
Controller faqat data qabul qiluvchi, service esa ish bajaruvchi bo‘ladi.
#Laravel #BestPractice #CleanCode
Ko‘pchilik Requestni to‘g‘ridan-to‘g‘ri modelga uzatadi:
User::create($request->validated());
Bu kichik loyihada ishlaydi. Lekin loyihangiz o‘sgan sayin validation, authorization, transformatsiya, mapping — hammasi Controllerda aralashib ketadi.
🔄 DTO yordamida esa:
1) request'dan faqat kerakli ma'lumot ajratiladi
2) typelar aniq bo‘ladi (misol: string $email, Carbon $birthday)
3) Service yoki Action klasslarga toza data uzatiladi
$userDto = new CreateUserDTO(
name: $request->name,
email: $request->email,
birthday: Carbon::parse($request->birthday)
);
$this->userService->create($userDto);
📦 DTO — kod arxitekturasini modular va testga qulay qiladi.
Controller faqat data qabul qiluvchi, service esa ish bajaruvchi bo‘ladi.
#Laravel #BestPractice #CleanCode
👍4🔥3
#laravel #tutorial #best_practice #api_versioning
Assalomu Alaykum 👋
Laravel API Versioning ✅
Bu yo'l bilan professional dasturchi bo'ling 📈
https://youtu.be/FCwLE1z_RAY?si=Vip7comLNRPAlPxk
Assalomu Alaykum 👋
Laravel API Versioning ✅
Bu yo'l bilan professional dasturchi bo'ling 📈
https://youtu.be/FCwLE1z_RAY?si=Vip7comLNRPAlPxk
YouTube
Laravel API Versioning #laravel #php #bestpractice #azizdev
Laravel API Versioning - Best Practice
Github Repo: https://github.com/azizdevfull/api-versioning
Telegram kanal: https://t.me/azizdevfull
Github Repo: https://github.com/azizdevfull/api-versioning
Telegram kanal: https://t.me/azizdevfull
🔥4
#laravel #tutorial #best_practice #db #transaction
Assalomu Alaykum 👋
Laravel DB Transaction ✅
Bu yo'l bilan professional dasturchi bo'ling 📈
https://youtu.be/p_VloJETnV0?si=r1QzdfnrEW2E1ZHC
Assalomu Alaykum 👋
Laravel DB Transaction ✅
Bu yo'l bilan professional dasturchi bo'ling 📈
https://youtu.be/p_VloJETnV0?si=r1QzdfnrEW2E1ZHC
YouTube
Laravel DB Transaction #laravel #php #bestpractice #azizdev
Laravel DB transaction - Best Practice
Github Repo: https://github.com/azizdevfull/db-transaction.git
Telegram kanal: https://t.me/azizdevfull
Github Repo: https://github.com/azizdevfull/db-transaction.git
Telegram kanal: https://t.me/azizdevfull
🔥5
https://youtube.com/shorts/fvUGM7JlFt4?si=8xCoZSXXMePdGPEI
✨ Men o‘zim haqimda kam gapiraman,
📽 ammo bu videoda Azizdevning qanday paydo bo‘lgani,
🌱 uning o‘sishi va yo‘l boshlashi haqida barcha haqiqatlar mavjud.
#Azizdev #Birth #History
✨ Men o‘zim haqimda kam gapiraman,
📽 ammo bu videoda Azizdevning qanday paydo bo‘lgani,
🌱 uning o‘sishi va yo‘l boshlashi haqida barcha haqiqatlar mavjud.
#Azizdev #Birth #History
YouTube
Men haqimda #aboutme #survivor #friends #azizdev #birthofdragon
“Boshida ko‘chirganman. Oxirida birinchi bo‘ldim.”IT Akademiyada o‘qishni boshlaganimda, sinfdoshim bilan birga yaxshi ketayotgan edik. HTML, CSS, JavaScript...
🔥4👍1🤯1