Tinker yordamida Laravel bilan muloqot qilish

15-Iyun, 2025 13:04

Laravel bilan ishlayotganda shunday holatlar borki murakkabroq query yoki mantiqiy amalni yozib undan hosil bo'ladigan qiymadni dd qilib tekshirish kerak bo'ladi. dd albatta bu holatda juda zo'r ko'makchi. Lekin, natijani ko'rish uchun brauzerga o'tib F5 ni bosish kerak. Keyin tekshirib bo'lgach o'sha ko'd kerak bo'lmasa uni o'chib tashlash ham alohida mehnat talab qiladi😅!

Bunday holatda, mantiq yoki Eloquent so'rov natijasini tezkor bilib olish uchun bizga Laravel Tinker yordamga keladi.

Xo'sh Laravel Tinker nima?

Rasmiy ta'rifga ko'ra Laravel Tinker Laravel app ko'di bilan real vaqt rejimida muloqot qiladigan REPL (Read-eval-print-loop — o'zbekchasiga o'qish-bajarish-chiqarish-sikli) utilita hisoblanadi. Bu turdagi dasturlar ma'lum bir dasturlash tilida bir vaqtni o'zida kodni yozib undan hosil bo'ladigan natijani ekranga chiqaradi va yana kod qabul qilish rejimiga o'tadi. Brauzerdagi JavaScript konsol ham shu turdagi dasturga misol bo'la oladi.

Laravel Tinker ham REPL utilita hisoblanib, u PHP uchun mo'ljallangan PsySH utilitasi ustiga qurilan va Laravel modellari, fasadlari va helper funksiyalaridan foydalanish imkoniyatlari bilan boyitilgan.

Tinkerda nimalar qilsa bo'ladi?

Masalan aytaylik, Post modelini yaratib migratsiya yurgazdingiz. Endi postlar bilan ishlash uchun ulardan bir nechta yaratish kerak. Albatta buning uchun factory yozib seederdan foydalanishimiz mumkin. Lekin bu vaqt oladigan jarayon. Agar sizga shunchaki sinov uchun bir nechta Post yaratish kerak bo'lsa, shunchaki php artisan tinker buyrug'i orqali tinkerga kirib, App\Models\Post::factory(10)->create() buyrug'ini yozish orqali 10ta Postni ma'lumotlar bazasiga yozilb yaratilgan modellarni tinker oynasida huddi dd qilgan kabi ko'rishingiz mumkin bo'ladi.

Konsol PHP muhiti bo'lganligi sababli har qanday PHP ifodadan foydalanib turli tajribalar qilib ko'rsa bo'ladi. Misol uchun, tepadagi yaratilgan postlarni $posts o'zgaruvchisiga joylab olib u ustida turli qo'shimcha metodlar bilan ishlash, servis container klassni to'g'ri yaratayotganini tekshirish va h.k.

Ko'rinib turibdiki, Tinkerga PHP va Laravel uchun konsol sifatida qarasak bo'ladi va xuddi Brauzerdagi konsolda bir nimalarni yozib tekshirib ko'rganimizdek Tinkerda ham turli eksperimentlar qilib ko'rsak bo'ladi.

Bundan tashqari Laravel Tinker bir nechta foydali buyruqlarni ham o'z ichiga oladi. Masalan kod bajarilishiga qancha vaqt ketayotganini o'lchamoqchi bo'lsangiz, kod boshiga timeit buyrug'ini qo'shib yozsangiz kifoya. Masalan:

php artisan tinker

Psy Shell v0.11.22 (PHP 8.3.9 — cli) by Justin Hileman
> timeit App\Models\User::all();
= Illuminate\Database\Eloquent\Collection {#14383
    all: [
		...
]

Command took 0.162474 seconds to complete.

Tinker yuqoridagi kabi holatlarda ancha qo'l keladi. Aytaylik Eloquent so'rov yoki Http klient orqali tashqi APIga murojaat yo'llab uning natijasi qanday shaklda kelishini, yoki uni qayta ishlash ustida tajribalar qilishni xohlasangiz, buni kontroller yoki web.php faylga yozib o'tirmasdan tinkerda tekshirsangiz bo'ladi.

Agar kod uzunroq bo'lsa keyingi qatorga o'tganda / belgisi orqali tushurib olish mumkin.

Xulosa va qo'shimcha manbalar

Qisqa qilib aytganda Laravel Tinker dasturlash jarayoningizni bir oz bo'lsada optimallashtirish uchun qo'l keladigan utilita va uni o'rganish sizga albatta qo'l kelishi tayin. Tinker haqida yanada ko'proq ma'lumot olmoqchi bo'lsangiz ushbu maqolani tavsiya qilaman.