Introduktion til Laravel-controllere

Hele din applikation kan oprettes bare ved at bruge Closures i routes.php-filen, det ville blive rodet, men det kan gøres muligt. Hvad hvis du muligvis kan organisere hele din proces ved hjælp af controller-klasser? Lad os se hvordan. Controllere er i stand til gruppen inden for en klasse, alle de tilknyttede logikker for anmodningshåndtering. Directory-app / Http / Controllers er ansvarlig for at gemme controllere. I MVC-rammen står 'C' for Controller, der fungerer som dirigerende trafik midt i Visninger og modeller. I dette emne skal vi lære om Laravel-controllere.

Liste over Laravel-controllere

Her er listen over Laravel-controllere nævnt nedenfor

1. Grundlæggende controllere

Nedenfor kan du se et grundlæggende eksempel på controller-klassen. Du kan her bemærke, at 'MyController' udvider 'Controller'. Her er 'Controller' basen. Baseklasse 'Controller' indeholder metoder som 'middleware', 'dispatch' og 'validere' metoder, som gør det praktisk. Du kan bruge middleware til at tildele det til controllerens rute eller i din controller's 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 sådan:

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

Tildeling af middleware i rutefiler:

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

Når rute URI matcher med en bestemt anmodning, bliver metoden 'show' i klassen 'MyController' udført, og parametre, der er specificeret i rute, tildeles også metoden.

Nogle ekstra kirsebær til dig:

  • Det er ikke nødvendigt at nævne det fulde navneområde for controlleren, da 'RouteServiceProvider' automatisk indlæses i rutegruppen, der har navneområdet indeholdt i det, alle rutefiler. Du skal blot specificere den del af navnet, der vises efter App \ Http \ Controllers.
  • Hvis du ønsker at definere controller med enkelt handling, kan du gøre det ved at placere en enkelt metode '__invoke' på din controller.

2. Ressource-controllere

Mens vi opretter en applikation, kræver vi udførelse af CRUD (Opret, læs, opdater, slet) operationer. Med Laravel ressource controllere er der bare behov for at oprette controlleren, og du kan efterlade hvile på Laravel. Laravel-ressourceruten tildeler CRUD-driftsruterne til controlleren også for med en kodningslinie. En enkelt rute kan registreres for alle metoder i filen route.php.

Lad os tage et eksempel, antag at til din ansøgning, du vil oprette en controller, der håndterer alle indkommende HTTP-anmodninger i forhold til 'gemte' billeder. Dette gøres hurtigt ved hjælp af Artisan-kommando. Lad os se på Artisan-kommandoen 'make: controller' hurtigt for at oprette en lignende controller som følger:

php artisan make:controller ImageController --resource

En controller genereres ved appen / Http / Controllers / ImageController.php ved hjælp af ovenstående kommando. Denne controller vil bestå af en metode dedikeret til hver tilgængelig ressourcehandling.

Nu kan du erklære en rute til håndtering af forskellige handlinger som denne:

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

Denne ruteerklæring skaber sig selv mange ruter, der kan håndtere adskillige handlinger. Denne controller har specifikke metoder til hver tilgængelig handling. Det vil også indeholde de noter, der informerer dig om URI'er og HTTP-verb, der håndteres.

Hvis du vil registrere mere end en ressourcecontroller på én gang, kan du gøre det ved hjælp af en matrix som vist nedenfor:

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

Tabel over handlinger

UdsagnsordURI / StiHandlingsbegivenhedRute Navn
STOLPE/ billederbutikimages.store
/ billederindeksimages.index
/ images / skabeskabimages.create
/ images / (billede)at viseimages.show
PUT / PATCH/ images / (billede)opdateringimages.update
/ Billeder / (billede) / redigereredigereimages.edit
SLET/ images / (billede)ødelæggeimages.destroy

3. Implicitte controllere

Ved hjælp af disse controllere kan du håndtere enhver handling bare ved at definere en rute. Du skal først definere rute ved at bruge Rute :: -controller sådan:

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

Her overføres to argumenter til controlleren.

  1. Base URI
  2. Controllers klassens navn

Nu skal du blot tilføje metoder til 'MyController' med HTTP-verb præfixeret til dem.

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

Metoderne 'indeks' vil svare på 'brugere', som er root / base URI, der håndteres af Controller.

Du kan få adgang til en handling med flere ord ved at bruge 'bindestreg' i URI. Se nedenfor controller-handling som et eksempel:

public function getAdminProfile() ()

Denne controller-handling i MyController vil svare til URI 'brugere / admin-profil'.

4. Indsprøjtning til afhængighed og controllere

Dependences Injection gør dine webapplikationer lettere at teste og vedligeholde.

1. Konstruktørinjektion

Laravel styrer klasseafhængigheder og løser alle controllere. Din controller kan have brug for afhængigheder i konstruktøren, med Laravel kan du typisk antyde enhver af disse afhængigheder. Laravel servicecontroller løser alle afhængigheder automatisk og indsprøjter dem i forekomsten af ​​controlleren.

<_?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. Metodeinjektion

Bortset fra at indsprøjte afhængigheder i konstruktøren, kan du også tip-tip dem til metoder til din controller. For eksempel kan eksempel Illuminate \ Http \ Request indsprøjtes i controllerens metode som følger:

<_?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;
//
)
)

Funktioner ved Laravel-controllere

Nedenfor er et par funktioner i laravel-controller:

  • MVC Support: Laravel understøttes af MVC Architecture. Det gør udviklingen hurtig, da den ene bruger kan arbejde med logik, mens den anden fungerer på visningen. Flere visninger understøttes for en model uden duplikation, da forretningslogik adskilles fra præsentationslogik.
  • Autentificering: Laravel har et indbygget system til autentificering, du skal kun passe på andre aspekter som konfiguration af visninger, modeller og controllere.
  • Sikkerhed: Sikkerhed er den vigtigste faktor, der skal overvejes i udviklingen af ​​en applikation. Laravel leverer sikkerhed ved sin indbyggede applikationssikkerhed.
  • Håndværker: Håndværker hjælper med at udføre gentagne opgaver uden at have dem til at udføre manuelt af udviklere. Disse kan bruges til at oprette databasestrukturen, koden, en migrering for at gøre den håndterbar.
  • Skabeloner: Med Laravels innovative og kraftfulde skabelonmotor kan udviklere oprette dynamiske webapplikationer.

Anbefalede artikler

Dette er en guide til Laravel-controllere. Her diskuterer vi et stort antal Laravel-controller-koncepter, som giver dig mulighed for at oprette din helt egen controller til din applikation, som vil være sikker og kraftfuld på samme tid. Du kan også se på den følgende artikel for at lære mere -

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

Kategori: