Introduksjon til Laravel-kontrollere

Hele applikasjonen din kan opprettes bare ved å bruke Closures i routes.php-filen, den vil bli rotete, men vil være gjennomførbar. Hva om du muligens kan organisere hele prosessen din ved hjelp av kontrollerklasser? La oss se hvordan. Kontrollører er i stand til gruppen innen en klasse, alle tilhørende logikker for håndtering av forespørsler. Directory app / Http / Controllers er ansvarlig for å lagre kontrollere. I MVC-rammeverket står 'C' for Controller som fungerer som dirigerende trafikk midt i visninger og modeller. I dette emnet skal vi lære om Laravel Controllers.

Liste over Laravel-kontrollere

Her er listen over Laravel-kontrollere som er nevnt nedenfor

1. Grunnleggende kontrollere

Nedenfor kan du se på et grunnleggende eksempel på kontrollerklassen. Du kan her legge merke til at 'MyController' utvider 'Controller'. Her er 'Controller' grunnklassen. Baseklasse 'Controller' inneholder metoder som 'mellomvare', 'utsendelse' og 'validere' metoder som gjør det praktisk. Du kan bruke mellomvare for å tilordne den til kontrollerens rute eller i kontrollerens konstruktør.

<_?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use App\User;
class MyController extends Controller
(
/**
* Show profile
*
*/
public function show($id)
(
return view('user.profile', ('user' => User::foundOrLost($id)));
)
)

Ruten til MyController kan defineres slik:

Route::get('user/(id)', ' ');

Tildele mellomvare i rutefiler:

Route::get('profile', ' ')->middleware('auth');

Når rute URI samsvarer med en spesifikk forespørsel, blir metoden 'show' i klassen 'MyController' utført og parametere som er spesifisert i rute, blir også tilordnet metoden.

Noen ekstra kirsebær til deg:

  • Det er ikke nødvendig å nevne hele navneområdet for kontrolleren da 'RouteServiceProvider' automatisk lastes inn i rutegruppen som har navneområdet i det, alle rutefilene. Du trenger ganske enkelt å spesifisere den delen av navnet som skal vises etter App \ Http \ Controllers.
  • Hvis du ønsker å definere kontrollen med én handling, vil du kunne gjøre det ved å plassere en enkelt metode '__invoke' på kontrolleren.

2. Ressurskontrollere

Når vi oppretter en applikasjon, krever vi å utføre CRUD (Create, Read, Update, Delete) -operasjoner. Med Laravel ressurskontrollere er det bare behov for å lage kontrolleren, og du kan la resten ligge på Laravel. Laravel-ressursruten tildeler CRUD-driftsrutene til kontrolleren som også bare med en linje med koding. En enkelt rute kan registreres for alle metoder i routes.php-filen.

La oss ta et eksempel, antar at for applikasjonen din, vil du lage en kontroller som håndterer alle innkommende HTTP-forespørsler i forhold til 'bilder' som er lagret. Dette vil raskt gjøres ved hjelp av Artisan-kommando. La oss se på Artisan-kommandoen 'make: controller' raskt for å lage en lignende kontroller som følger:

php artisan make:controller ImageController --resource

En kontroller vil bli generert på appen / Http / Controllers / ImageController.php av kommandoen ovenfor. Denne kontrolleren vil bestå av en metode dedikert til hver tilgjengelig ressursoperasjon.

Nå kan du erklære en rute for å håndtere forskjellige handlinger som denne:

Route::resource('images', 'ImageController');

Denne ruteerklæringen skaper seg mange ruter som kan håndtere en rekke handlinger. Denne kontrolleren vil ha spesifikke metoder for hver tilgjengelig handling. Den vil også inneholde notatene som vil informere deg om URI-er og HTTP-verb som blir håndtert.

Hvis du vil registrere mer enn en ressurskontroller på en gang, kan du gjøre det ved hjelp av en matrise som vist nedenfor:

Route::resources((
'images' => 'ImageController',
'posts' => 'PostController'
));

Handlingstabell

VerbURI / StiHandlingsarrangementRute Navn
POST/Bilderbutikkimages.store
/Bilderindeximages.index
/ images / skapeskapeimages.create
/ bilder / (bilde)forestillingimages.show
PUT / PATCH/ bilder / (bilde)Oppdaterimages.update
/ Bilder / (bilde) / redigereredigereimages.edit
DELETE/ bilder / (bilde)ødeleggeimages.destroy

3. Implisitte kontrollere

Ved hjelp av disse kontrollerne kan du håndtere enhver handling bare ved å definere en rute. Du må definere rute først ved å bruke Route :: -kontroller slik:

Route::controller('users', 'MyController');

Her overføres to argumenter til kontrolleren.

  1. Base URI
  2. Kontrollørens klassens navn

Nå må du bare legge til metoder til 'MyController' med HTTP-verb prefikset til dem.

class MyController extends Controller (
public function getIndex()
(
//
)
public function anyLogin()
(
//
)
public function postProfile()
(
//
)
)

Metodene 'indeks' vil svare på 'brukere', som er root / base URI som håndteres av Controller.

Du kan få tilgang til en handling med flere ord ved å bruke 'dash' i URI. Se kontrollerhandling nedenfor som eksempel:

public function getAdminProfile() ()

Denne kontrollhandlingen i MyController vil svare til URI 'brukere / admin-profil'.

4. Avhengighetsinjeksjon og kontrollere

Dependencies Injection gjør webapplikasjonene dine enklere å teste og vedlikeholde.

1. Konstruktørinjeksjon

Laravel styrer klasseavhengighet og løser alle kontrollører. Kontrolleren din kan trenge avhengigheter i konstruktøren, med Laravel kan du skrive hint nesten alle disse avhengighetene. Laravel servicekontroller løser alle avhengighetene automatisk og injiserer dem i forekomsten av kontrolleren.

<_?php
namespace App\Http\Controllers;
use App\Repositories\UserRepository;
class MyController extends Controller
(
/**
* The user repository instance.
*/
protected $users;
/**
* Create a new controller instance.
*
* @param UserRepository $users
* @return void
*/
public function __construct(UserRepository $users)
(
$this->users = $users;
)
)

2. Metodeinjeksjon

Bortsett fra å injisere avhengigheter i konstruktøren, kan du også tipse dem til metoder for kontrolleren din. For eksempel kan for eksempel Illuminate \ Http \ Request injiseres i kontrollerens metode på følgende måte:

<_?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class MyController extends Controller
(
/**
* Store a new user.
*
* @param Request $request
* @return Response
*/
public function store(Request $request)
(
$name = $request->name;
//
)
)

Funksjoner av Laravel Controllers

Nedenfor er noen funksjoner i laravel-kontrolleren:

  • MVC Support: Laravel er støttet av MVC Architecture. Det gjør utviklingen raskt ettersom en bruker kan jobbe med logikk, mens den andre jobber på visning. Flere visninger støttes for en modell uten duplisering ettersom virksomhetslogikken skilles fra presentasjonslogikken.
  • Autentisering: Laravel har et innebygd system for autentisering, du trenger bare å ta vare på andre aspekter som å konfigurere visninger, modeller og kontrollere.
  • Sikkerhet: Sikkerhet er den fremste faktoren som må vurderes i utviklingen av en applikasjon. Laravel gir sikkerhet med den innebygde applikasjonssikkerheten.
  • Artisan: Artisan hjelper til med å utføre repeterende oppgaver uten å ha dem til å utføre manuelt av utviklere. Disse kan brukes til å opprette databasestruktur, kode, en migrering for å gjøre den håndterbar.
  • Maler: Med Laravels innovative og kraftige malmotor kan utviklere lage dynamiske nettapplikasjoner.

Anbefalte artikler

Dette er en guide til Laravel-kontrollere. Her diskuterer vi en god del Laravel-kontrollerkonsepter som lar deg lage din helt egen kontroller for applikasjonen din, som vil være sikker og kraftig på samme tid. Du kan også se på følgende artikkel for å lære mer -

  1. Hva er Laravel Framework?
  2. Laravel-kommandoer
  3. Hva er Laravel?
  4. Hva er Servlet?