Izihloko

I-Laravel: isingeniso kumzila we-laravel

Umzila ku-Laravel uvumela abasebenzisi ukuthi bahambise zonke izicelo zohlelo kusilawuli esifanele. Imizila eminingi eyinhloko e-Laravel ibona futhi yamukela Isihlonzi Sefa Esifanayo kanye nokuvalwa, sinikeza indlela elula necacile yomzila.

Uyini umzila (umzila) ?

Indlela iyindlela yokudala i-URL yesicelo yohlelo lwakho lokusebenza. Lawa ma-URL awadingi ukuthi ahlotshaniswe namafayela athile kuwebhusayithi futhi ayafundeka abantu futhi anobungani be-SEO.

Ku-Laravel, izindlela zenziwa ngaphakathi kwefolda le routes. Zakhiwe kufayela web.php kumawebhusayithi, nangaphakathi api.php yama-API.

Lezi route abelwe iqembu middleware inethiwekhi, igqamisa isimo seseshini nokuphepha CSRF. Imizila ku route/api.php azinasimo futhi zabelwe iqembu le-API middleware.
Ukufakwa ngaphambilinidefiI-Laravel nita iza nezindlela ezimbili, eyodwa eyewebhu neye-API. Lena yindlela ebukeka ngayo indlela yewebhu web.php:

Route::get('/', function () {
   return view('welcome');
});

Uyini umzila eLaravel?

Zonke izindlela zeLaravel zilungile definiti emafayeleni endlela atholakala ngaphakathi kohlu lwemibhalo routes. Uhlelo lokusebenza lokuphatha umzila, defikufakwe efayeleni App\Providers\RouteServiceProvider, inakekela ukuhlanganisa lawa mafayela ngokuzenzakalelayo. Ifayela route/web.php defiivala izindlela zesixhumi esibonakalayo sewebhu.

È kungenzeka definish indlela yalesi senzo sesilawuli kanje:

Route::get(‘user/{id}’, ‘UserController@show’);

Route::resource: indlela Route::resource ikhiqiza zonke izindlela eziyisisekelo ezidingekayo zohlelo lokusebenza futhi iphathwa ngesigaba sesilawuli.

Uma isicelo sifana ne-URI yomzila eshiwo, indlela iyasetshenziswa show defikuqedwe kusilawuli App\Http\ControllersUserController, ukudlulisa amapharamitha womzila endleleni.

Ngezinsiza, udinga ukwenza izinto ezimbili kuhlelo lokusebenza I-Laravel. Okokuqala, udinga ukudala indlela yensiza I-Laravel enikeza ukufaka, ukubuyekeza, ukubuka nokususa izindlela. Okwesibili, dala isilawuli sensiza esihlinzeka ngendlela yokufaka, ukuvuselela, ukubuka, nokususa.

Ukufakwa ngaphambilinidefiI-Laravel nita iza nezindlela ezimbili: eyodwa eyewebhu neye-API. Nakhu ukuthi umzila oya kuwebhu ubukeka kanjani ku-web.php:

Route::get(‘/’, function () {

return view(‘welcome’);

});

I-Laravel Middleware isebenza njengebhuloho phakathi kwesicelo nokusabela. Kungaba uhlobo oluthile lwengxenye yokuhlunga.

I-Laravel sebenza nge i-middleware elinomsebenzi wokuqinisekisa ukuthi isicelo seklayenti siqinisekisiwe noma cha. Uma kwenzeka iklayenti liqinisekisiwe, khona-ke umzila uqondisa kabusha ekhasini lasekhaya noma ikhasi lokungena ngemvume.

Izindlela ze- route

Ikhodi yangaphambilini defiisusa indlela eya ekhasini lasekhaya. Noma nini lapho lo mzila uthola isicelo get ngayinye /, izobuyisela i view welcome

Zonke izindlela zeLaravel zilungile definithi kuwe routing, ezitholakala ngaphakathi kohla lwemibhalo dei routes. Ngenxa yalokho, l'AppProvidersRouteServiceProvider yohlelo lokusebenza ihlanganisa la marekhodi. Ifayela route/web.php iqukethe imizila ephethwe isixhumi esibonakalayo sewebhu.

Isakhiwo sendlela silula kakhulu. Vula ifayela elifanele (`web.phpo `api.php) bese uqala umugqa wekhodi nge `Route:: `, okulandelwa isicelo ofuna ukusinikeza lowo mzila othile bese usho umsebenzi ozokwenziwa ngokulandela isicelo.

I-Laravel inikeza izindlela ezilandelayo:

  • get
  • post
  • put
  • delete
  • patch
  • options

Izindlela zikhona defiifakwe ku-Laravel ngaphakathi kwekilasi Lomzila nge-HTTP, umzila okumele uphendule kuwo kanye nokuvala, noma isilawuli.

Ungakha kanjani izindlela eLaravel

Ake sibone ukuthi ungazakha kanjani izindlela zakho eLaravel.

Indlela ye-GET eyisisekelo

Manje ngizodala indlela eyisisekelo ezophrinta ithebula lezikhathi lika-2.

Route::get('/table', function () {
   for($i =1; $i <= 10 ; $i++){
       echo "$i * 2 = ". $i*2 ."<br>";
   }   
});

Kule khodi engenhla, ngidale indlela yokucela i-GET ye-URL /table, ezophrinta ithebula lezikhathi loku-2 esikrinini.

Manje ake sibone ikhodi efanayo, sibeka ipharamitha inombolo esiyifunela ithebula lokuphindaphinda:

Route::get('/table/{number}', function ($number) {
   for($i =1; $i <= 10 ; $i++){
       echo "$i * $number = ". $i* $number ."<br>";
   }   
});

Ekhodini elithi 'number' phakathi kwezikaki imele ipharamitha, okungukuthi inombolo okuzobalwa ngayo ithebula lokuphindaphinda. Noma kunini lapho kucaciswa i-URL yohlobo /table/n, bese kuzophrintwa ithebula lezinombolo n.

Kukhona futhi indlela yokuhlanganisa zombili izici endleleni eyodwa. I-Laravel ikunikeza isici semingcele ongasikhetha esikuvumela ukuthi wengeze imingcele ozikhethela yona usebenzisa uphawu lombuzo '?' ngemva kwepharamitha ozikhethela yona kanye nenani langaphambilidefikusihlwa. Ake sibone isibonelo:

Route::get('/table/{number?}', function ($number = 2) {
   for($i =1; $i <= 10 ; $i++){
       echo "$i * $number = ". $i* $number ."<br>";
   }   
});

Ekhodini engenhla sidale ipharamitha yethu yomzila, okwenza inombolo ibe ngokuzikhethela, ngakho uma umsebenzisi ehola `/table` khona-ke izokhiqiza ithebula lika-2 ngokuzenzakalelayodefinite futhi uma umsebenzisi ehambela `/table/{number}Bese kuba nethebula lezinombolo 'number' izokhiqizwa.

Izengezo ezivamile njengemingcele yamapharamitha womzila

Esibonelweni sangaphambilini sidale indlela yokukhiqiza ithebula lokuphindaphinda, kodwa singaqinisekisa kanjani ukuthi ipharamitha yendlela empeleni iyinombolo, ukugwema amaphutha lapho kukhiqizwa ithebula lokuphindaphinda?

Ngo Laravel, ungakwazi defisusa umkhawulo kupharamitha yomzila usebenzisa indlela `where` esibonelweni somzila. I``where` ithatha igama lepharamitha kanye nenkulumo evamile yaleyo pharamitha.

Innovation newsletter
Ungaphuthelwa yizindaba ezibaluleke kakhulu zokuqamba. Bhalisa ukuze uthole nge-imeyili.

Manje ake sibone isibonelo sesivimbelo ` sepharamitha yethu{numero}` ukwenza isiqiniseko sokuthi inombolo kuphela edluliswayo kumsebenzi.

Route:: get ( '/table/{numero?}' , funzione ( $numero = 2 ) {    
   for( $i = 1 ; $i < = 10 ; $i + + ) {   
       echo "$i * $numero = " . $i * $numero . "<br>" ; 
   }   
} )->where( 'numero' , '[0-9]+' ) ;

Kule khodi engenhla, sisebenzise isisho esivamile senombolo yendlela. Manje, uma umsebenzisi ezama umzila oya /ithebula/no izovezwa okuhlukile kwe-NotFoundHttpException.

I-Laravel Routing enomsebenzi wokulawula

Ngo Laravel, ungakwazi defisebenzisa indlela yokulawula yendlela. Indlela yesilawuli yenza zonke izenzo definite njalo lapho umsebenzisi efinyelela umzila.
Ngekhodi elandelayo sabela indlela yesilawuli 'functionname' emzileni:

Route:: get ( '/home' , 'YourController@functionname' ) ;

Ikhodi iqala ngokuthi `Route::` ngakho-ke defiivala indlela yokucela indlela. Ngemva kwalokho, defiQedela indlela yakho nesilawuli kanye nendlela ngokungeza uphawu luka-@ ngaphambi kwegama lendlela.

Nikeza indlela igama

Ngo Laravel, ungakwazi defingicela igama lendlela yakho. Leli gama ngokuvamile liwusizo kakhulu. Isibonelo, uma ufuna ukuqondisa kabusha umsebenzisi kusuka endaweni eyodwa kuya kwenye, akudingekile defivala i-URL yokuqondisa kabusha egcwele. Ungamane unikeze igama lakhe. Ungakwazi defisusa igama lomzila usebenzisa indlela `name` esimweni somzila.

Route::get('/table/{number?}', function ($number = 2) {
   for($i =1; $i <= 10 ; $i++){
       echo "$i * $number = ". $i* $number ."<br>";
   }   
})->where('number', '[0-9]+')->name(‘table’);

Manje, ngingakwazi ukukhiqiza kabusha i-url yale ndlela, ngokusebenzisa ikhodi elandelayo:

$url = route('table');

Ngokufanayo, ekuqondiseni kabusha kule URL, i-syntax elungile izoba:

return redirect()->route('table');

Route Groups

I Route Groups, ngokwezwi nezwi amaqembu endlela, iyisici esibalulekile ku-Laravel, esikuvumela ukuthi uhlanganise izindlela. Amaqembu ezindlela awusizo uma ufuna ukusebenzisa izibaluli kuzo zonke izindlela eziqoqwe. Uma usebenzisa amaqembu endlela, asikho isidingo sokuthi usebenzise izibaluli ngazinye endleleni ngayinye; lokhu kugwema ukuphindaphinda. Ikuvumela ukuthi wabelane ngezimfanelo ezifana middleware o namespaces, ngaphandle defiqedela lezi zimfanelo endleleni ngayinye ngayinye. Lezi zibaluli ezabiwe zingadluliswa ngefomethi yamalungu afanayo njengepharamitha yokuqala endleleni Route::group.

I-syntax Yeqembu Lomzila

Route::group([], callback);  

ijuba []: iwuhlelo oludluliselwe endleleni yeqembu njengepharamitha yokuqala.

Isibonelo se Route Group e web.php

Route::group([], function()  
{  
   Route::get('/first' , function()  
   {  
      echo "first way route" ;   
   });  
   Route::get('/second' , function()  
   {  
      echo "second way route" ;   
   });  
   Route::get('/third' , function()  
   {  
      echo "third way route" ;   
   });  
});  

Ekhodini, defiasithole indlela iqembu(), equkethe imingcele emibili, i.e array e closure. Ngaphakathi kwe closure, singakwazi defiqeda ukuthi bangaki route sifuna. Kule khodi engenhla, sinayo defiwaqeda kathathu route.

Uma ngesiphequluli sifinyelela i-URL localhost/myproject/first bese kungenela owokuqala route ukuthayipha esipheqululini first way route.

Nge-URL localhost/myproject/second bese kulandela owesibili route ukuthayipha esipheqululini second way route.

Ngenkathi une-URL localhost/myproject/third bese kulandela owesithathu route ukuthayipha esipheqululini third way route.

Iziqalo ze Route Groups

Iziqalo ze route asetshenziswa uma sifuna ukuhlinzeka ngesakhiwo se-URL esivamile kokuningi route.

Singacacisa isiqalo sazo zonke izindlela defiama-nites phakathi kweqembu usebenzisa inketho yohlu lwesiqalo ku Route Groups.

Isibonelo se web.php

Route::group(['prefix' => 'movie'], function()  
{  
   Route::get('/godfather',function()  
   {  
     echo "Godfather casting";  
   });  
   Route::get('/pulpfiction',function()  
   {  
     echo "Pulp Fiction casting";  
   });  
   Route::get('/forrestgump',function()  
   {  
     echo "Forrest Gump casting";  
   });  
});  

Ikhodi iqukethe izindlela ezintathu ezingafinyelelwa kuma-URL alandelayo:

/movie/godfather  --->   Godfather casting

/movie/pulpfiction  --->   Pulp Fiction casting

/movie/forrestgump  --->   Forrest Gump casting

Middleware

Futhi singanikeza i-middleware kuyo yonke imizila ngaphakathi kweqembu. I-middleware kufanele ibe defiqedile ngaphambi kokudala iqembu. Ukuze ubone ukuthi ungakwenza kanjani lokhu, funda isihloko sethu I-Laravel middleware ukuthi isebenza kanjani.

isibonelo:

Route::middleware(['age'])->group( function()  
{  
  
   Route::get('/godfather',function()  
   {  
     echo "Godfather casting";  
   });  
   Route::get('/pulpfiction',function()  
   {  
     echo "Pulp Fiction casting";  
   });  
   Route::get('/forrestgump',function()  
   {  
     echo "Forrest Gump casting";  
   });  
  
});  

Iziqalo zegama lendlela

Indlela name isetshenziselwa ukufaka isiqalo igama ngalinye lika route ngochungechunge olucacisiwe. Endleleni name, sidinga ukucacisa iyunithi yezinhlamvu enohlamvu olulandelanayo kusiqalo.

Ngokwesibonelo web.php

Route::name('movie.')->group(function()  
{  
   Route::get('users', function()  
   {  
      return "movie.films";  
   })->name('films');  
});  

Ercole Palmeri

Innovation newsletter
Ungaphuthelwa yizindaba ezibaluleke kakhulu zokuqamba. Bhalisa ukuze uthole nge-imeyili.

Izihloko zakamuva

I-Veeam ifaka ukusekelwa okuphelele kakhulu kwe-ransomware, kusukela ekuvikelweni kuya ekuphenduleni nasekululameni

I-Coveware ye-Veeam izoqhubeka nokuhlinzeka ngezinsizakalo zokuphendula izigameko zokuntshontshwa kwe-inthanethi. I-Coveware izohlinzeka ngama-forensics kanye nekhono lokulungisa…

23 April 2024

Inguquko Eluhlaza Nedijithali: Indlela Ukugcinwa Okubikezelwayo Kuyiguqula Kanjani Imboni Kawoyela Negesi

Ukulungiswa okuqagelayo kuguqula umkhakha kawoyela negesi, ngendlela emisha nesebenzayo yokuphatha izitshalo.…

22 April 2024

Isilawuli se-antitrust sase-UK siphakamisa i-alamu ye-BigTech nge-GenAI

I-CMA yase-UK ikhiphe isexwayiso mayelana nokuziphatha kwe-Big Tech emakethe yezobunhloli bokwenziwa. Lapho…

18 April 2024

I-Casa Green: inguquko yamandla yekusasa elisimeme e-Italy

Isinqumo esithi "Case Green", esakhiwe yi-European Union ukuze kuthuthukiswe ukusebenza kahle kwamandla ezakhiwo, siphothule inqubo yaso yomthetho ngokuthi...

18 April 2024