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

Ubuhlakani bokwenziwa be-Google obusha bungakwazi ukwenza i-DNA, i-RNA kanye "nawo wonke ama-molecule empilo"

I-Google DeepMind yethula inguqulo ethuthukisiwe yemodeli yayo yobuhlakani bokwenziwa. Imodeli entsha ethuthukisiwe ayinikezi kuphela…

9 May 2024

Ukuhlola i-Laravel's Modular Architecture

I-Laravel, edume nge-syntax yayo enhle nezici ezinamandla, iphinde inikeze isisekelo esiqinile sokwakhiwa kwe-modular. Lapho…

9 May 2024

I-Cisco Hypershield kanye nokutholwa kwe-Splunk Inkathi entsha yokuphepha iyaqala

I-Cisco ne-Splunk zisiza amakhasimende ukuthi asheshise uhambo lwawo oluya ku-Security Operations Center (SOC) yesikhathi esizayo nge...

8 May 2024

Ngale kohlangothi lwezomnotho: izindleko ezingabonakali ze-ransomware

I-Ransomware iphethe izindaba kule minyaka emibili edlule. Iningi labantu lazi kahle ukuthi ukuhlasela...

6 May 2024

Ukungenelela okusha ku-Augmented Reality, ngesibukeli se-Apple e-Catania Polyclinic

Ukuhlinzwa kwe-ophthalmoplasty kusetshenziswa isibukeli sezentengiso se-Apple Vision Pro kwenziwa eCatania Polyclinic…

3 May 2024

Izinzuzo Zokufaka Umbala Amakhasi Ezingane - umhlaba womlingo wayo yonke iminyaka

Ukuthuthukisa amakhono amahle emisipha ngokusebenzisa imibala kulungiselela izingane amakhono ayinkimbinkimbi njengokubhala. Ukufaka umbala...

2 May 2024

Ikusasa Lilapha: Imboni Yezokuthumela Imikhumbi Iwuguqula Kanjani Umnotho Womhlaba

Umkhakha wezempi wasolwandle ungamandla ezomnotho weqiniso emhlabeni jikelele, osudlule wafinyelela emakethe yezigidigidi eziyi-150...

1 May 2024

Abashicileli kanye nezivumelwano ze-OpenAI zisayina ukuze zilawule ukuhamba kolwazi olucutshungulwa yi-Artificial Intelligence

NgoMsombuluko odlule, i-Financial Times imemezele isivumelwano ne-OpenAI. I-FT inikeza amalayisense ubuntatheli bayo obusezingeni lomhlaba…

30 April 2024