Thursday, November 09, 2023

Temelji Laravel razvoja, sve što trebate znati o MVC, HTTP glagolima i REST-u

U prethodnom postu, pogledajte ovde; smo se maksimalno posvetili da razumete zašto Laravel framework - radni okvir služi, koliko je koristan i onda smo svu pažnju usmerili na instalaciju istog zbog kompleksnosti i prethodnih instalacija koje ovaj radni okvir zahteva. Pre nego što počnemo uopšte da koristimo Laravel neophodno je da vas bar delimično upoznamo sa osnovama ili temeljom na kom je baziran Laravel radni okvir. Ali prvo da vidimo na kom principu radi Laravel radni okvir. Pojavom AI – veštačke inteligencije, došlo je do pometnje u svetu programera, gubljenje poslova i to je definitivno dovelo do toga da mnogi programeri shvate da biti stručnjak za jedan programski jezik ili jedan framework – radni okvir; više nije dovoljno. Zato se danas i pored korišćenja AI – veštačke inteligencije neke stvari rade brže i lakše; masovno uče i drugi programski jezici i radni okvirovi. Tako da nije slučajnost na primer da neko ko poznaje Angular radni okvir traži neke stvari koje ovaj radni okvir sadrži u Laravel radnom okviru i obratno. Međutim, tih stvari nema jer je Laravel frontend framework koji je baziran na TypeScript-u i radi na strani klijenta dok Laravel je backend framework koji je baziran na Symfony; takođe radnom okviru baziranom na backend i radi na strani servera kao i što koristi PHP programski jezik. Znači da ponovimo, Laravel framework – radni okvir je backend i radi na strani servera. On može da radi neke stvari koji mogu takođe da rade neki radni okvirovi ali koji rade na strani servera, može da ne radi druge stvari ili može da radi neke stvari ali na drugačiji način. Laravel radni okvir je pre svega najpopularniji radni okvir među PHP programerima i to pre svega zbog mogućnsti koje može da odradi i zbog toga na koji način i šta sve sadrži ovaj radni okvir.


( Laravel web framework - radni okvir, najpopularniji među PHP programerima )

Laravel je poznat po svojoj elegantnoj i čitljivoj sintaksi koja olakšava razvoj veb aplikacija. Ima mnoge ugrađene alate i funkcionalnosti koje programerima štede vreme i trud. Laravel dolazi sa Eloquent ORM-om, koji omogućava jednostavno i efikasno upravljanje bazama podataka. Ovo olakšava rad s bazama podataka i ubrzava razvoj. Laravel radni okvir dolazi s brojnim ugrađenim mehanizmima sigurnosti kao što su zaštita od CSRF napada, kontrola sesija i autentikacija. To olakšava programerima održavanje sigurnih aplikacija. On takođe ima moćan alat za upravljanje aplikacijama koji se zove Artisan. Pomoću njega možete brzo generisati kod, izvoditi migracije, testirati aplikacije i još mnogo toga. Laravel podržava modularni pristup razvoju, što znači da možete koristiti komponente i pakete razvijene od strane zajednice ili napraviti svoje, kako biste ubrzali razvoj aplikacija. On se lako integriše s drugim popularnim alatima i servisima, kao što su Redis, Memcached, Elasticsearch i drugi. On takođe prati najnovije trendove u razvoju veb aplikacija, uključujući podršku za RESTful API-je, WebSocket-e i druge moderne tehnologije. Laravel  je pristupačan i moćan radni okvir koji je pogodan kako za manje projekte tako i za kompleksne aplikacije, što ga čini jednim od najpopularnijih radnih okvira u PHP ekosistemu. Može da radi i na drugim operativnim sistemima ali Linux operativni sistem je njegovo prirodno okruženje. Imajte to u vidu kada imate mogućnost da birate OS na kom ćete raditi sa Laravel radnim okvirom.

Šta je MVC i zašto se koristi u Laravel-u?

MVC, što je skraćenica od Model-View-Controller je pre svega arhitekturni obrazac koji se često koristi u razvoju veb aplikacija; a takođe se primenjuje i u Laravel radnom okviru. Ovaj obrazac pomaže organizovati aplikaciju na način koji je olakšava održavanje, poboljšava skalabilnost i pomaže razdvajanje odgovornosti između različitih delova aplikacije. MVC funkcioniše i primenjuje se u Laravel-u na sledeći način:

  • M kao Model – je odgovoran za interakciju s bazom podataka i predstavlja podatke i poslovnu logiku aplikacije. U Laravel-u, modeli su PHP klase koje mapiraju tabele u bazi podataka. Modeli omogućavaju čitanje, pisanje, ažuriranje i brisanje podataka iz baze. Ovo olakšava rad s podacima i omogućava programerima da se koncentrišu na poslovnu logiku aplikacije.
  • V kao View - je odgovoran za prikazivanje podataka korisnicima. Ovo uključuje HTML, CSS, JavaScript i šablonizaciju. View dobija podatke iz modela i prikazuje ih korisnicima. U Laravel-u, view-ovi ili pregledi  su često napisani koristeći Blade templating sistem, koji omogućava lako ubacivanje podataka u HTML šablone.
  • C kao Controller -  je odgovoran za upravljanje zahtevima korisnika i interakciju između modela i view-a. Kada korisnik napravi zahtev; na primer pritisne dugme na veb stranici, taj zahtev se obrađuje od strane kontrolera. Kontroler tada komunicira s modelima da bi dobio ili ažurirao podatke i zatim prosleđuje te podatke view-ima. Laravel koristi kontrolere za upravljanje rutama i zahtevima korisnika.

Da nebi bilo nejasnoća, kada kažemo šablonizacija, onda mislimo na proces kreiranja i korišćenja šablona kako bi se olakšalo generisanje dinamičkog sadržaja u veb aplikacijama, dokumentima ili drugim medijima. Osnovna ideja iza šablonizacije je da se odvoji struktura i logika dizajna od samih podataka. To omogućava programerima da kreiraju šablone koji sadrže fiksne delove dizajna i promenljive delove gde će se ubacivati dinamički generisani podaci. U kontekstu veb razvoja, šablonizacija se često koristi za generisanje HTML stranica ili drugih vrsta dokumenta, gde se podaci prikazuju korisnicima. Ovaj pristup omogućava dizajnerima da kreiraju atraktivan dizajn stranice, dok programeri mogu ubacivati dinamičke podatke kao što su naslovi, slike, tekstovi ili korisnički generisani sadržaj. U Laravel radnom okviru, na primer, koristi se Blade templating sistem za šablonizaciju. Blade omogućava programerima da kreiraju HTML šablone sa posebnim Blade oznakama za ubacivanje podataka i kontrolne strukture. Na primer, možete koristiti Blade oznaku {{ $variable }} za ubacivanje vrednosti promenljive u HTML šablonu. Ovo čini kod čitljivim i olakšava održavanje. Šablonizacija nije ograničena samo na veb razvoj; koristi se i u drugim oblastima, kao što su generisanje dokumenata, e-pošta i mnogi drugi mediji gde je potrebno kombinovati dizajn sa dinamičkim sadržajem. Ovaj koncept pomaže održavanju konzistentnog izgleda i olakšava upravljanje promenljivim podacima u aplikacijama. Nadamo se da vam je to sada mnogo jasnije.


( MVC - Model-View-Controller u Laravel radnom okviru )

Laravel radnom okviru, struktura projekta je već organizovana u skladu s MVC arhitekturom. Ovo olakšava programerima da razdvajaju logiku zahteva, logiku prikaza i upravljanje podacima. Na primer, kada definirate routs - ruteLaravel-u, možete odrediti koji kontroler će se koristiti za svaku rutu. Kontroler će zatim komunicirati s modelima da bi dobio ili ažurirao podatke i prosledio ih views -pregledima za prikaz. Korišćenje MVC arhitekture u Laravel radnom okviru; pomaže organizaciji i održavanju kôda, olakšava saradnju među različitim članovima tima i omogućava skalabilnost aplikacije. Ovaj obrazac je ključni deo modernog razvoja veb aplikacija i pomaže programerima da kreiraju čist, struktuiran i efikasan kôd.

Šta su HTTP glagoli?

HTTP glagoli, takođe poznati kao HTTP metode; predstavljaju načine na koje veb zahtevi komuniciraju s veb serverima. U Laravel radnom okviru, kao i u svim veb aplikacijama, HTTP glagoli igraju ključnu ulogu jer omogućavaju različite akcije na serveru. Najčešće korišćeni HTTP glagoli su:

  • GET – koristi se za dobijanje podataka s veb servera. Na primer, kada posetite veb stranicu u svom pregledaču, pregledač šalje GET zahtev da zatraži HTML stranicu.
  • POST – koristi se za slanje podataka na veb server, obično kao deo forme ili zahteva za kreiranje novih resursa. Na primer, kada popunite obrazac na veb stranici i kliknete "Pošalji", pregledač šalje POST zahtev s unosima iz obrasca.
  • PUT - koristi se za ažuriranje postojećih resursa na serveru. Na primer, možete koristiti PUT zahtev da ažurirate informacije o korisniku ili nekom drugom resursu.
  • DELETE – koristi se za brisanje resursa na serveru. Na primer, kada želite obrisati određeni unos iz baze podataka, koristili biste DELETE zahtev.
  • PATCH - koristi se za delimično ažuriranje postojećeg resursa. To znači da možete ažurirati samo određene delove resursa, a ne ceo resurs.
  • PUTCH - iako nije deo standardne HTTP specifikacije, Laravel koristi PATCH zahtev za delimično ažuriranje resursa.
  • OPTIONS – koristi se za dobijanje informacija o dostupnim metodama i resursima na serveru. To je korisno za prethodno ispitivanje servera i podršku za CORS – Cross-Origin Resource Sharing.

Postoje još TRACE i CONNECT glagola koja se nikad ne koriste u običajnom razvojnom razvoju veb stranica. U Laravel radnom okviru, rute se često definiraju s odgovarajućim HTTP glagolima kako bi se odredilo koji kontroler i akcija treba izvršiti za određeni zahtev. Na primer, možete definisati rutu koja će reagovati samo na GET zahteve za prikazivanje informacija, ili POST zahteve za kreiranje novih zapisa u bazi podataka. Laravel olakšava rukovanje ovim HTTP glagolima i njihovu obradu u aplikacijama.


( Upotreba HTTP glagola u Laravel radnom okviru )

Šta je REST?

REST, skraćeno od Representational State Transfer je arhitekturni stil koji se često koristi za dizajniranje veb servisa i API-ja. Osnovna ideja REST-a je da resursi kao što su podaci ili entiteti budu predstavljeni kao URL-ovi, a interakcija sa serverom se postiže preko standardnih HTTP metoda GET, POST, PUT, DELETE, PATCH itd. REST promoviše jednostavnost, skalabilnost i reprezentaciju resursa u različitim formatima kao što su JSON ili XML. U Laravel radnom okviru, RESTful rute i kontroleri igraju ključnu ulogu u implementaciji REST arhitekture. RESTful rute su rute koje su oblikovane prema REST principima i koriste standardne HTTP metode za izvršavanje akcija nad resursima. Na primer, RESTful rute za upravljanje entitetom "Korisnik" mogu izgledati ovako:

GET /users: Prikaz svih korisnika.

GET /users/{id}: Prikaz određenog korisnika.

POST /users: Kreiranje novog korisnika.

PUT /users/{id}: Ažuriranje postojećeg korisnika.

DELETE /users/{id}: Brisanje korisnika.

Laravel radnom okviru se RESTful rute obično definiraju pomoću metode resource u definiciji ruta. Na primer:

Route::resource('users', 'UserController');

Ovom jednostavnom definicijom, Laravel će automatski generisati rute za sve standardne RESTful akcije kao što su indeks, prikaz, kreiranje, ažuriranje, brisanje i povezati iste s odgovarajućim akcijama u kontroleru. RESTful kontroleri u Laravel-u su inače odgovorni za obradu zahteva prema RESTful rutama. Oni sadrže metode za svaku od standardnih akcija kao što su index, show, store, update, destroy i izvršavaju odgovarajuće akcije nad resursima. Korišćenje RESTful pristupa u Laravel radnom okviru; olakšava razvoj i održavanje API-ja i veb servisa, jer se strogo pridržava standarda i konvencija. Takođe olakšava komunikaciju između različitih klijenata i servera jer se koriste standardne HTTP metode i URL-ovi za identifikaciju resursa i izvršavanje akcija nad njima. REST je široko prihvaćen i popularan pristup u razvoju veb aplikacija i API-ja zbog svoje jednostavnosti i skalabilnosti.


( Korišćenje REST arhitekture za autentikaciju u Laravel radnom okviru )


 

 

 

 

 


 

 

No comments:

Post a Comment