Maqolalar

Laravel nima, u qanday ishlaydi va WEB ilovalarini yaratish uchun asosiy arxitektura

Laravel oddiy, ammo kuchli sintaksislardan foydalangan holda yuqori darajadagi veb-ilovalarni yaratish uchun PHP-ga asoslangan veb-ramkadir.

Laravel PHP ramkasi mustahkam vositalar to'plami bilan birga keladi va ishlab chiqarilgan ilovalar uchun arxitekturani ta'minlaydi. Bu MVC arxitekturasidan foydalanadigan ochiq manbali PHP ramkasi:

  • Doiraviy: bu dasturchi foydalanadigan usullar, sinflar yoki fayllar to'plami bo'lib, shuningdek, o'z kodi yordamida ularning funksiyalarini kengaytira oladi.
  • Arxitektura: ramka amal qiladigan maxsus dizayn namunasidir. Laravel MVC arxitekturasiga amal qiladi.

mvc

Qisqartma uchta harfdan iborat bo'lib, ma'nosi quyidagicha:

  • M: Shablon. Model - bu ma'lumotlar bazasi bilan shug'ullanadigan sinf. Misol uchun, agar ilovada foydalanuvchilar bo'lsa, bizda foydalanuvchilar jadvalini so'rash uchun mas'ul bo'lgan foydalanuvchilar modeli bo'ladi, agar bizda foydalanuvchilar modeli bo'lsa, bizda foydalanuvchilar jadvali ham bo'ladi.
  • V: Ko'rinish. Ko'rinish - bu brauzerda dastur haqida ko'rishimiz mumkin bo'lgan hamma narsaga g'amxo'rlik qiladigan sinf.
  • C: Kontrollerlar. Nazoratchi - bu model va ko'rinishga g'amxo'rlik qiluvchi vositachi. Kontroller - bu modeldan ma'lumotlarni oladigan va uni ko'rish sinfiga yuboradigan sinf.

Foyda va xususiyatlar

Avtorizatsiya va autentifikatsiya tizimlarini yaratish

Har bir veb-ilova egasi ruxsatsiz foydalanuvchilar himoyalangan resurslarga kira olmasligiga ishonch hosil qilishi kerak. Laravel autentifikatsiyani amalga oshirishning oson usulini taqdim etadi. Shuningdek, u avtorizatsiya mantig'ini tashkil qilish va resurslarga kirishni boshqarishning oson yo'lini taqdim etadi.

Asboblar bilan integratsiya

Laravel tezroq ilova yaratadigan ko'plab vositalar bilan birlashtirilgan. Bu nafaqat dasturni yaratish, balki tezroq dastur yaratish uchun ham kerak. Keshlash backend bilan integratsiya veb-ilovaning ishlashini yaxshilashning asosiy qadamlaridan biridir.Laravel Redis va Memcached kabi mashhur keshlash serverlari bilan birlashtirilgan.

Pochta xizmati integratsiyasi

Laravel pochta xizmati bilan birlashtirilgan. Ushbu xizmat elektron pochta xabarnomalarini yuborish uchun ishlatiladi. Bu sizga mahalliy yoki bulutga asoslangan xizmat orqali tezda elektron pochta xabarlarini yuborish imkonini beruvchi toza va oddiy API taqdim etadi.

Sinovni avtomatlashtirish

Mahsulotni sinovdan o'tkazish dasturiy ta'minotning xato, xato va nosozliklarsiz ishlashiga ishonch hosil qilish uchun juda muhim - har safar yangi versiya chiqarilganda. Biz bilamizki, avtomatlashtirilgan test qo'lda testdan ko'ra kamroq vaqt oladi, ayniqsa regressiyasiz testlar uchun. Laravel ham testni hisobga olgan holda ishlab chiqilgan.

Biznes mantiq kodini taqdimot kodidan ajratish

Biznes mantiqiy kodi va taqdimot kodini ajratish HTML maket dizaynerlariga ishlab chiquvchilar bilan o'zaro aloqa qilmasdan ko'rinish va hisni o'zgartirishga imkon beradi. Biznes mantiq kodi (Controller) va taqdimot kodi (View) o'rtasida ajratilgan bo'lsa, xato ishlab chiquvchilar tomonidan tezroq tuzatilishi mumkin. Biz bilamizki, Laravel MVC arxitekturasiga amal qiladi, shuning uchun ajratish asosiy hisoblanadi.

Eng keng tarqalgan texnik zaifliklarni tuzatish

Laravel - bu xavfsiz ramka, chunki u veb-ilovani barcha xavfsizlik zaifliklaridan himoya qiladi. Zaiflik veb-ilovalarni ishlab chiqishdagi eng muhim jihatlardan biridir. Amerika tashkiloti OWASP Foundation, defiSQL in'ektsiyasi, so'rovlarni soxtalashtirish, skript yaratish va boshqalar kabi asosiy xavfsizlik zaifliklarini yo'q qiladi.

CRON: konfiguratsiya va boshqaruv faoliyatini rejalashtirish

WEB ilovalari har doim vazifalarni o'z vaqtida rejalashtirish va bajarish uchun vazifalarni rejalashtirish mexanizmlarini talab qiladi. Misol uchun, qachon obunachilarga elektron pochta xabarlarini yuborish yoki kun oxirida ma'lumotlar bazasi jadvallarini qachon tozalash kerak. Vazifalarni rejalashtirish uchun ishlab chiquvchilar har bir vazifa uchun Cron yozuvini va Laravel buyruqlar rejalashtiruvchisini yaratishlari kerak defibuyruqni rejalashtirishni tugatadi.

Laravel loyihasini yaratish

Birinchi Laravel loyihangizni yaratish uchun sizda bo'lishi kerak Composer o'rnatilgan. Agar u sizning mashinangizda bo'lmasa, uni bizning maqolamizda tasvirlanganidek o'rnatishni davom eting yaratmoq.

Shundan so'ng, yangi Laravel loyihangiz uchun tizimingizda yangi katalog yarating. Keyin, yangi katalog yaratgan yo'lga o'ting va loyiha yaratish buyrug'ini bajaring composer create-projectquyidagi buyruqni kiritish orqali:

composer create-project laravel/laravel myex-app

Bu buyruq (9.x versiyasi) nomli loyihani yaratadi myex-app

Yoki siz yangi loyihalar yaratishingiz mumkin Laravel ning o'rnatuvchisini global o'rnatish Laravel amaliyoti Composer:

Innovatsion axborot byulleteni
Innovatsiyalar haqidagi eng muhim yangiliklarni o'tkazib yubormang. Ularni elektron pochta orqali olish uchun ro'yxatdan o'ting.
composer global require laravel/installer
laravel new myex-app

Loyihani yaratgandan so'ng, buyruq yordamida mahalliy Laravel ishlab chiqish serverini ishga tushiring serve DellArtisan CLI of Laravel:

php artisan serve

Rivojlanish serverini ishga tushirgandan so'ng Artisan, ilovangizga veb-brauzeringizda kirish mumkin bo'ladi http://localhost:8000. Endi siz foydalanishga tayyorsiz Laravel. Albatta, siz ham ma'lumotlar bazasini o'rnatishni xohlashingiz mumkin.

Laravelda dastur tuzilishi

Laravel strukturasi asosan loyihaga kiritilgan papkalar, pastki papkalar va fayllar tuzilishidir. Laravel-da loyiha yaratilgandan so'ng, biz Laravel ildiz papkasi tasvirida ko'rsatilganidek, dastur tuzilishini ko'rishimiz mumkin:

config

Konfiguratsiya papkasida Laravel ilovasining to'g'ri ishlashi uchun zarur bo'lgan konfiguratsiyalar va tegishli parametrlar mavjud. Konfiguratsiya jildiga kiritilgan turli fayllar quyidagi rasmda keltirilgan. Fayl nomlari konfiguratsiya doirasini ifodalaydi.

ma'lumotlar bazasi

Ushbu katalog ma'lumotlar bazasi funksionalligi uchun turli parametrlarni o'z ichiga oladi. U uchta kichik katalogni o'z ichiga oladi:

  • Urug'lar: birlik testi ma'lumotlar bazasi uchun ishlatiladigan sinflarni o'z ichiga oladi;
  • Migratsiyalar: bu papkadan JB strukturasini yaratish va ilova bilan moslashtirish uchun foydalaniladi;
  • Zavodlar: Ushbu papka ko'p sonli ma'lumotlar yozuvlarini yaratish uchun ishlatiladi.
ijtimoiy

Bu Laravel ilovasini ishga tushirishga yordam beradigan ildiz papkasi, ya'ni dasturning boshlanishi. Quyidagi fayl va papkalarni o'z ichiga oladi:

  • .htaccess: server konfiguratsiyasini ta'minlovchi fayl;
  • javascript va CSS: Laravel ilovasining barcha resurs fayllarini o'z ichiga oladi;
  • index.php: veb-ilovani ishga tushirish uchun kerak bo'lgan fayl.
resurslar

Resurslar katalogida veb-ilovani yaxshilaydigan fayllar mavjud. Ushbu katalogga kiritilgan pastki papkalar va ularning maqsadi:

  • aktivlar: papka veb-ilova uslubi uchun zarur bo'lgan LESS va SCSS kabi fayllarni o'z ichiga oladi;
  • lang: mahalliylashtirish yoki ichkilashtirish uchun konfiguratsiyani o'z ichiga oladi;
  • ko'rinishlar: oxirgi foydalanuvchilar bilan o'zaro aloqada bo'lgan va MVC arxitekturasida asosiy rol o'ynaydigan HTML fayllari yoki shablonlari.
saqlash

Bu Laravel loyihasi ishlayotganda kerak bo'ladigan barcha jurnallar va fayllarni saqlaydigan papka. Quyida ushbu katalogga kiritilgan pastki papkalar va ularning maqsadi -

  • ilova: bu papkada ketma-ket chaqiriladigan fayllar mavjud;
  • ramka: tez-tez chaqiriladigan sessiyalar, keshlar va ko'rinishlarni o'z ichiga oladi;
  • Jurnallar: Ish vaqti muammolarini, ayniqsa, barcha istisnolar va xato jurnallarini kuzatuvchi fayllarni o'z ichiga oladi.
sinovs

Barcha birlik test holatlari ushbu katalogda joylashgan. Sinov ishi sinflari uchun nomlash camel_case bo'lib, sinfning funksionalligiga asoslangan nomlash qoidalariga amal qiladi.

Sotuvchi

Laravel boshqariladigan bog'liqliklarga asoslangan yaratmoq, masalan, Laravel sozlamalarini o'rnatish yoki uchinchi tomon kutubxonalarini qo'shish va hokazo.

Vendor papkasida barcha bog'liqliklar mavjud yaratmoq.

Ercole Palmeri

Innovatsion axborot byulleteni
Innovatsiyalar haqidagi eng muhim yangiliklarni o'tkazib yubormang. Ularni elektron pochta orqali olish uchun ro'yxatdan o'ting.

So'nggi maqolalar

Catania poliklinikasida Apple tomoshabin bilan kengaytirilgan haqiqatga innovatsion aralashuv

Kataniya poliklinikasida Apple Vision Pro tijorat ko‘rish vositasi yordamida oftalmoplastika operatsiyasi o‘tkazildi...

3 may 2024

Bolalar uchun sahifalarni bo'yashning afzalliklari - barcha yoshdagilar uchun sehrli dunyo

Rang berish orqali nozik vosita ko'nikmalarini rivojlantirish bolalarni yozish kabi murakkabroq ko'nikmalarga tayyorlaydi. Rang berish uchun…

2 may 2024

Kelajak bu yerda: Yuk tashish sanoati global iqtisodiyotni qanday inqilob qilmoqda

Harbiy dengiz sektori 150 milliardlik bozorga yo'l olgan haqiqiy global iqtisodiy kuchdir...

1 may 2024

Noshirlar va OpenAI sun'iy intellekt tomonidan qayta ishlangan ma'lumotlar oqimini tartibga solish bo'yicha shartnomalar imzolaydilar.

O'tgan dushanba kuni Financial Times OpenAI bilan shartnoma imzolaganini e'lon qildi. FT o'zining jahon darajasidagi jurnalistikasini litsenziyalaydi...

30 Aprel 2024