Laravelda kod yozishning avtomatlashtirish va tezligini oshirish - Artisan sizning eng yaqin do'stingiz

Forumlar va turili chatlarda dasturchilar Laravel freymvorkini boshqa freymvorklar bilan tez-tez taqqoslanadigan muhokamlarni juda ko'p uchratishimiz mumkin. Bu maqolada Laravelni boshqa freymvorklar bilan solishtirishgani emas, balki Laravelning afzalliklarini ko'rsatishga va menda eng katta, shubhasiz ijobiy taassurot qoldirgan narsalarni tasvirlashga e'tibor qaratmoqchiman.
Artisan haqida
Artisan bu Laravelning CMD yoki terminal orqali yordamchisi hisoblanadi. Artisan instrumenti tegishli buyrug'i yordamida siz odatda ko'p vaqt talab qiladigan ko'plab ishlarni tezda bajarishingiz mumkin. Aynan qaysi ishlar ekanligini quyidagi keltirib o'taman.
Frontend sozlamalari/ Laravel UI
Kerakli frontend texnologiyalarni loyihangiz uchun sozlash ba'zida ko'p vaqt talab qilishi mumkin ayniqsa bu ish yangi loyiha boshlayotganizda kerak bo'lib qolsa. Laravelda loyiha boshlayotganizda quyidagi 3 xil frontend sozlamalarini avtomatik ravishda qo'llashingiz mumkin:
php artisan preset react
6-versiyadan boshlab, birinchi navbatda, composer yordamida Laravel UI paketini o'rnatishingiz kerak
composer require laravel/ui
shundan so'ng kerakli frontend sozlamalarini quyidagi kommanda yordamini o'rnatishingiz mumkin.Misol uchun:
php artisan ui react
Shuningdek siz faqatgina shu uchta frontend sozlamalaridan tashqari o'zingiz uchun moslashtirilgan frontend texnologiyalari asosidagi konfiguratsiyali(masalan: tailwindcss) sozlamlarini o'rnatishingiz mumkin bu bo'yicha GitHub da ko'plab misollar topshiringiz mumkin.
Avtorizatsiya
Hozirda deyarli barcha ishlab chiqilayotgan axborot tizimlari uchun avtorizatsiya,foydalanuvchilar registratsiyasi, parolni qayta tiklash funksionalliklariga ega bo'lishi kerak. Bu funksionalliklarni har safar noldan yaratish dasturchi uchun zerikarli va ersh tuyulishi mumkin shuning uchun ham siz laravelda oldindan tayyorlab quyilgan yechimlardan foydalanishingiz mumkin. Buning uchun siz quyidagi sodda bir qatorli kommandadan foydalanishinigiz mumkin:
php artisan make:auth
Laravel 6- versiyasidan boshlab ui kutubxonasi orqali quyidagi kommandadan foydalanasiz:
php artisan ui:auth
Misol uchun quyidagi foydalanuvchilar ro'yxatdan o'tishi va avtorizatsiyasi uchun routelar, viewlar va controllerlarni react componentlarni yaratib beradi:
php artisan ui react –auth
Eloquent
Eloquent bu laravelning eng katta ustunlaridan biri desam xato bo'lmaydi. Bu kutubxona ORM(Object Related Mapping) bo'lib u ActiveRecord patterniga asoslangan holatda qurilgan. U biz uchun ma'lumotlarni bazasi bilan intuitiv(sodda, tushunarli) usulda ishlashga yordam beradi. Buning yordamida siz raw(tekt ko'rinishidagi) SQL so'rovlarini yozishni unutishingiz mumkin va ma'lumotlar bazasi bilan ishlash juda yoqimli bo'ladi. Quyida bir nechta misollar keltirilgan:
User::where('firstname', 'Maqsudhkoja')→orderBy('lastname', 'DESC')→get();
Yuqoridagi kod biror tushunish uchun qiyinchilik talab etmasada: MB(Ma'lumotlar baza)sidan ismi "Maqsudhkoja" bo'lgan foydalanuvchilarni ularning familyasi bo'yicha saralab olib beradi. Agar siz bitta foydalanuvchini olmoqchi bo'lsangiz, yuqoridagi kodda oxirgi get() metodi o'rniga first() ishlatish kifoya:
User::where('firstname', 'Maqsudhkoja')→orderBy('lastname', 'DESC')→first();
Shuningdek agar siz MB da qo'yilgan shartlar bo'yicha ma'lumotlar topilsa javob tariqasida 404 sahifa chiqarmoqchi bo'lsangiz findOrFail() metodidan foydalanishingiz mumkin:
User::findOrFail('first_name', 'Maqsudhkoja')→orderBy('last_name', 'DESC')→get();
Yuqoridagi misollar Eloquent imkoniyatlarining yuzdan biri ham emas. Siz osonga MB ga yangi ma'lumotlar qo'shishingiz, tahrirlashingiz, o'chirishingiz mumkin. MB jadvallari o'rtasidagi birga-bir (one-to-one), birga ko'p (one-to-many) yoki ko'pga ko'p bog'lanishlarni ham qo'shishingiz mumkin.
Migrations
Yana bir imkoniyatlarda bir bu MB da jadvalarni yaratish, tahrirlash, o'chirish haqida to'xtalib o'tmoqchiman. Ma'lumotlarni saqlash uchun siz loyihangiz MB sida yangi jadvallar yaratishingiz kerak buladi. Xuddi shu maqsad uchun ma'lumotlarni o'zida aks ettiruvchi Model ham yaratish zarurati bor. Bularni siz yagona artisan kommanda orqali qilishingiz mumkin:
php artisan make:model Product –migration
Product.php model klassi app/model’s (Laravel 7 undan yuroqi versiyalarda) papkasida yaratiladi. Kommandagi – migration attribute modelga qo'shib uning migratsiyasini yaratish kerakligini bildiradi va u database/migration papkasida joylashgan bo'ladi. Bu faylda ikki up() hamda down() metodlari bo'lib masalan u quyidagicha ko'rinishda bo'ladi:
public function up()
{
Schema::create('products', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->text('description');
$table->float('price');
$table->integer('stock');
$table->tinyInteger('isActive');
$table->timestamps();
});
}
timestamps metodi jadvalga avtomatik ravishda yaratilganda yoki ma'lumotlar yangilanganda to'ldiriladigan created_at va updated_at ustunlarini qo'shadi.
Shundan so'ng quyidagi buyruq yordamida siz jadvalni ma'lumotlar bazasiga migratsiya qilishingiz mumkin:
php artisan migrate
yoki
php artisan migrate:fresh
oldingi eski ma'lumotlarni barchasini o'chirish va jadval strukturasni qaytadan noldan yaratish uchun yuqoridagi buyruqni ishlatsangiz bo'ladi.
Database seeders
Ko'pincha loyihalarni yaratganimizda mijozlar bilan ishlashimiz yoki loyihani testlashimiz uchun demo ma'lumotlar(masalan: foydalanuvchilar,mahsulotlar yoki yangiliklar va shunga o'xshash) kerak bo'ladi. Buning uchun biz yordam beradigan PHPning Faker nomli kutubxonasi mavjud bo'lib bu kutubxona yordamida Laravelda loyihani demo ma'lumotlar bilan to'ldirishda yordam beradigan tayyor yechimlar mavjud. Masalan ma'lumotlar bazasiga 1000 ta foydalanuvchini loyihani testlash maqsadida qo'shishingiz kerak.
Birinchi qiladigan ishimiz bu quyida keltirilgan buyruq yordamida foydalanuvchilarni generatsiya qilib beruvchi Factory classimizni yaratib olamiz:
php artisan make:factory UserFactory -m User
Shundan so'ng siz loyihaning database/factory papkasida yangi UserFactory.php fayl yaratilganini ko'rishingiz mumkin. Bu fayl ichida definition() metodini ichida foydalanuvchilar jadvalida to'ldirilishi kerak bo'lgan ustunlarning tiplari va xarakteristikalarni kiritib chiqasiz.Masalan:
public function definition()
{
return [
'first_name' => $this→faker→firstName,
'last_name' => $this->faker->lastName,
'email' => $this->faker->unique()->safeEmail,
'email_verified_at' => now(),
'password' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi',
// password
'remember_token' => Str::random(10),
];
}
E'tibor bering ustunlar nomini kiritayotgangizda uning nomi ma'lumotlar bazasidagi mos ustunlar nomi bilan birga bir to'g'ri kelishi shart.
Keyingi bosqichda seeder classimizni yaratamiz. Albatta buning uchun artisan buyrug'ini ishlatamiz.
php artisan make:seeder UsersTableSeeder
database/seeders/UsersTableSeeder.php yangi yaratilgan faylda run() metodida nechta foydalanuvchi yaratish kerakligini kiritishingiz kerak bo'ladi.
public function run()
{
\App\Models\User::factory()->count(100)->create();
}
database/seeders/DatabaseSeeder.php run() metodini ichida yaratga seeder classinimiz chaqirib qo'yamiz
public function run()
{
$this->call(UsersTableSeeder::class);
}
Seederni ishlatish uchun artisan buyrug'idan foydalanishingiz kerak:
php artisan db:seed
Pochta xabarlarni jo'natish
Yaxshi dizayn qilingan elektron pochta xabarlarini loyihangizda ishlab chiqish soatlab vaqt olishi mumkin. Shunga qaramay Laravel bu ish maksimal darajada sodda ko'rinishiga keltirilgan. Albatta buning uchun quyidagi artisan buyruqni ishlatishingiz mumkin:
php artisan make:mail HelloWorldMail –markdown emails.hello-world
Buyruq muvofaqqiyatli bajarilsa ikki fayl yaratadi . Birinchisi: resources/views/mails/hello-world/blade.php faylda siz xabar ko'rinishida tahrirlashingiz mumkin. Ikkinchi faylda \App\Mail\HelloWorldMail class yaratilgan, Bu class yordamida siz xabarlarni jo'natishingiz mumkin. Shuning bu class ichidagi siz view faylga kerakli o'zgaruvchilar berib yuborishingiz mumkin.
Mailgun yoki mailtrap kabi servislarni integratsiya qilish ham sodda ko'rinishda bo'lib odatda o'sha servislarning login parollarini .env faylga kiritish yetarli.
Telescope
Nihoyat yana bitta yordamchi kutubxonalardan biri loyihangizni debug qilishga va optimizatsiyasi uchun katta yordam beradigan Telescope kutubxonasi o'rnatamiz. Telescope yordamida siz loyinhangiz orqa fonida bo'layotgan barcha hodisa va jarayonlartni kuzatib bora olasiz. Quyidagi 3 ta buyruq yordamida loyihangizga bu kutubxonani o'rnatishingiz mumkin:
composer require laravel/telescope
php artisan telescope:install
php artisan migrate
Shundan so'ng loyihangiz asosiy manzilidan kegin /telescope path ni kiritib Enter ni bosing.
Xulosa
Simplex kompaniyasida biz loyihalarimizda asosiy php framework sifatida ishlatamiz. Yuqoridagi keltirilgan ma'lumotlarni ish faoliyatingiz davomida ishlatimishingiz orqali vaqtingiz tejashingiz va loyiha ishlab chqiish jarayonlaringizni soddalashtirishingiz mumkin. Qolaversa faqatgina artisan buyruqlari bilan kod sifati hamda tezligigizni oshira olmaysiz, bundan tashqari Laravel dokumentatsiyasi bilan ishlashi, google dan qidirish, stackoverflowdan,turli forumlardan masalan laracasts dan foydalanishini o'rganish. Qisqasi o'rganish va o'rgangan bilimlarningizni amalyotda qo'llashdan to'xtab qolmang. Kasb cho'qqilarni zabt eting.




