Introducere în Controlerele Laravel

Întreaga aplicație poate fi creată doar folosind închideri în fișierul routes.php, ar deveni dezordonat, dar va fi realizabil. Ce se întâmplă dacă puteți organiza întregul dvs. proces cu ajutorul cursurilor de controler? Să vedem cum. Controlerele sunt capabile să grupeze în cadrul unei clase, toate logicile asociate de gestionare a cererilor. Aplicația director / Http / Controllers este responsabilă pentru stocarea controlerelor. În cadrul MVC, „C” reprezintă un controler care acționează ca direcționare a traficului pe baza vizualizărilor și a modelelor. În acest subiect, vom afla despre Controlerele Laravel.

Lista controlerelor Laravel

Aici este menționată lista controlorilor Laravel

1. Controlere de bază

Mai jos puteți arunca o privire la un exemplu de bază al clasei de controler. Este posibil să observați aici că „MyController” extinde „Controller”. Aici „Controller” este clasa de bază. Clasa de bază „Controller” oferă metode precum „middleware”, „expediție” și „validare”, ceea ce o face convenabilă. Puteți utiliza middleware pentru a-l atribui pe ruta controlorului sau în constructorul controlerului.

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

Traseul către MyController poate fi definit astfel:

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

Alocarea de middleware în fișierele rutelor:

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

Atunci când URI-ul de rute se potrivește cu o solicitare specifică, atunci metoda „show” din clasa „MyController” este executată și parametrii specificați în traseu sunt de asemenea alocați metodei.

Câteva vișine în plus pentru tine:

  • Nu este necesar să menționați spațiul complet de nume pentru controler, deoarece „RouteServiceProvider” se încarcă automat în grupul de rute care are spațiu de nume conținut în acesta, toate fișierele de rută. Pur și simplu trebuie să specificați acea porțiune a numelui care va apărea după App \ Http \ Controllers.
  • Dacă doriți să definiți controlorul cu o singură acțiune, veți putea face acest lucru prin plasarea unei singure metode „__invoke” pe controler.

2. Controlere resurse

În timp ce creăm o aplicație, avem nevoie de efectuarea operațiunilor CRUD (Creare, Citire, Actualizare, Ștergere). Cu ajutorul controlerelor de resurse Laravel, trebuie doar să creezi controlerul și poți lăsa odihnă pe Laravel. Ruta de resurse Laravel va aloca rutele de operare CRUD controlerului, care doar cu o linie de codare. O singură rută poate fi înregistrată pentru toate metodele din fișierul routes.php.

Să luăm un exemplu, să presupunem că pentru aplicația dvs., doriți să faceți un controler care să se ocupe de toate cererile HTTP primite în ceea ce privește „imaginile” stocate. Acest lucru se va realiza rapid cu ajutorul comenzii artizanale. Să ne uităm la comanda Artisan rapid „make: controller” pentru a crea un controler similar după cum urmează:

php artisan make:controller ImageController --resource

Un controler va fi generat la aplicația / Http / Controllers / ImageController.php prin comanda de mai sus. Acest controler va consta dintr-o metodă dedicată fiecărei operații de resurse disponibile.

Acum, puteți declara o rută pentru a gestiona diverse acțiuni ca aceasta:

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

Această declarație de traseu creează în sine multe rute care pot gestiona numeroase acțiuni. Acest controler va avea metode specifice pentru fiecare acțiune disponibilă. De asemenea, va include notele care vă vor informa despre URI și verbele HTTP care sunt gestionate.

Dacă doriți să înregistrați mai multe un controler de resurse dintr-o dată, puteți face acest lucru cu ajutorul unui tablou, așa cum se arată mai jos:

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

Tabel de acțiuni

VerbURI / CaleaEveniment de acțiuneNumele traseului
POST/ imaginimagazinimages.store
OBȚINE/ imaginiindeximages.index
OBȚINE/ images / creacreaimages.create
OBȚINE/ images / (image)spectacolimages.show
PUT / PATCH/ images / (image)Actualizațiimages.update
OBȚINE/ Images / (image) / editaEditați | ×images.edit
ȘTERGE/ images / (image)distrugeimages.destroy

3. Controlerele implicite

Cu ajutorul acestor controlere, puteți gestiona fiecare acțiune doar prin definirea unei rute. Mai întâi, trebuie să definiți ruta folosind Route :: controller astfel:

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

Aici, două argumente sunt transmise controlorului.

  1. URI de bază
  2. Numele clasei controlorului

Acum trebuie doar să adăugați metode la „MyController” cu verb HTTP prefixat la ele.

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

Metodele „index” vor răspunde „utilizatorilor”, care este URI-ul root / de bază gestionat de Controller.

O acțiune cu mai multe cuvinte poate fi accesată folosind 'dash' în URI. Consultați mai jos acțiunea controlerului ca exemplu:

public function getAdminProfile() ()

Această acțiune a controlerului în MyController va răspunde „utilizatorilor / profilului de admin” al URI.

4. Injecția și controlerele de dependență

Dependența Injecție facilitează testarea și întreținerea aplicațiilor dvs. web.

1. Injecția constructorului

Laravel gestionează dependențele clasei și rezolvă toate controlerele. Controlerul dvs. ar putea avea nevoie de dependențe în constructor, cu Laravel, puteți să scrieți aproape oricare dintre aceste dependențe. Controlerul de serviciu Laravel va rezolva automat toate dependențele și le va injecta în instanța de control.

<_?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. Metoda injectării

În afară de injectarea dependențelor în constructor, puteți de asemenea să le introduceți în metode de controler. De exemplu, instanța Illuminate \ Http \ Request poate fi injectată în metoda controlorului după cum urmează:

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

Caracteristici ale Controlerelor Laravel

Mai jos sunt câteva caracteristici ale controlerului laravel:

  • Suport MVC: Laravel este susținut de MVC Architecture. Face ca dezvoltarea să fie rapidă, deoarece un utilizator poate lucra pe logică, în timp ce celălalt lucrează la vedere. Vizualizări multiple sunt acceptate pentru un model fără duplicare, deoarece logica de afaceri este separată de logica de prezentare.
  • Autentificare: Laravel are un sistem încorporat pentru autentificare, trebuie doar să aveți grijă de alte aspecte precum configurarea vizualizărilor, modelelor și controlerelor.
  • Securitate: securitatea este principalul factor care trebuie luat în considerare în dezvoltarea unei aplicații. Laravel oferă securitate prin securitatea aplicației sale încorporate.
  • Artisan: Artisan ajută la îndeplinirea sarcinilor repetitive, fără a le face să efectueze manual de către dezvoltatori. Acestea pot fi utilizate pentru a crea structura bazei de date, codul, o migrare, astfel încât să poată fi gestionată.
  • Șabloane: Cu motorul inovator și puternic al șabloanelor Laravel, dezvoltatorii pot crea aplicații web dinamice.

Articole recomandate

Acesta este un ghid pentru Controlerele Laravel. Aici vom discuta despre un număr corect de concepte ale controlorului Laravel, care vă vor permite să creați propriul dvs. controler pentru aplicația dvs., care va fi sigur și puternic în același timp. De asemenea, puteți consulta articolul următor pentru a afla mai multe -

  1. Ce este Laravel Framework?
  2. Comenzi Laravel
  3. Ce este Laravel?
  4. Ce este Servlet?