Uvod u Laravel kontrolere

Cjelokupna aplikacija može se stvoriti samo upotrebom zatvorenih vrata u datoteci route.php, postala bi neuredna, ali bit će izvediva. Što ako eventualno možete organizirati cijeli proces uz pomoć Controller klasa? Da vidimo kako. Upravljači su sposobni za skupinu unutar jedne klase, sve pridružene logike upravljanja zahtjevima. App Store / Http / Controllers odgovorna je za pohranu kontrolera. U okviru MVC, "C" označava Controller koji djeluje kao usmjeravanje prometa usred pogleda i modela. U ovoj ćemo temi upoznati Laravelove kontrolere.

Popis Laravel kontrolera

Ovdje je Popis Laravel kontrolera koji se spominje u nastavku

1. Osnovni kontroleri

Ispod možete pogledati osnovni primjer klase kontrolera. Ovdje možete primijetiti da 'MyController' proširuje 'Controller'. Ovdje je "kontroler" osnovna klasa. Bazna klasa "kontroler" pruža metode poput "srednjeg softvera", "otpreme" i "provjere" metoda što ga čini prikladnim. Pomoću srednjeg softvera možete ga dodijeliti ruti kontrolera ili u konstruktoru vašeg kontrolera.

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

Put do MyController može se definirati ovako:

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

Dodjeljivanje srednjeg softvera u datotekama rute:

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

Kada se URI rute podudara s određenim zahtjevom, tada se metoda "pokazuje" na klasi "MyController" izvršava, a parametri navedeni u ruti dobivaju se dodijeljeni i metodi.

Nekoliko dodatnih trešanja za vas:

  • Ne treba spominjati puni imenski prostor kontrolera jer se "RouteServiceProvider" automatski učitava u skupinu ruta koja ima nazivni prostor, sve datoteke rute. Jednostavno trebate odrediti onaj dio imena koji će se pojaviti nakon App \ Http \ Controllers.
  • Ako želite definirati single-action kontroler, to ćete moći učiniti stavljanjem jedinstvene metode '__invoke' na svoj kontroler.

2. Kontroleri resursa

Tijekom stvaranja aplikacije potrebno je obavljanje operacija CRUD (Stvaranje, čitanje, ažuriranje, brisanje). S Laravel regulatorima resursa, samo trebate stvoriti regulator i možete ostaviti odmor na Laravelu. Ruta resursa Laravel dodijelit će upravljačke rute CRUD-a tom kontroleru samo s jednom linijom kodiranja. Jedna se ruta može registrirati za sve metode u datoteci route.php.

Uzmimo primjer, pretpostavimo da za vašu aplikaciju želite napraviti kontroler koji obrađuje sve dolazne HTTP zahtjeve u odnosu na pohranjene 'slike'. To će se brzo učiniti uz pomoć Artisan komande. Pogledajmo brzo naredbu Artisan 'make: kontroler' kako bismo stvorili jedan sličan kontroler na sljedeći način:

php artisan make:controller ImageController --resource

Gornja naredba na aplikaciji / Http / Kontroleri / ImageController.php generirat će se kontroler. Ovaj se kontroler sastoji od metode posvećene svakoj dostupnoj operaciji resursa.

Sada možete proglasiti rutu za obradu različitih radnji poput ove:

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

Ova deklaracija rute stvara mnogo ruta koje mogu podnijeti brojne akcije. Ovaj kontroler će imati specifične metode za svaku dostupnu radnju. Uključuje i bilješke koje će vas informirati o URI-ima i HTTP glagolima kojima se rukuje.

Ako želite registrirati više regulatora resursa u jednom potezu, to možete učiniti pomoću niza kao što je prikazano u nastavku:

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

Tablica radnji

GlagolURI / PutAkcijski događajNaziv rute
POST/ slikedućanimages.store
DOBITI/ slikeindeksimages.index
DOBITI/ slika / stvoritistvoritiimages.create
DOBITI/ slike / slika) (pokazatiimages.show
PUT / PATCH/ slike / slika) (Ažurirajimages.update
DOBITI/ Slike / slika () / urediUrediimages.edit
IZBRISATI/ slike / slika) (uništitiimages.destroy

3. Neizgledni kontroleri

Pomoću ovih kontrolera možete obraditi svaku radnju samo definiranjem jedne rute. Prvo morate definirati rutu koristeći kontroler Route :: ovako:

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

Evo, dva argumenta se predaju regulatoru.

  1. Osnovni URI
  2. Naziv klase kontrolera

Sada samo trebate dodati metode u "MyController" s HTTP glagolom prefiksa na njih.

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

Metode 'indeks' će odgovarati na 'korisnike', što je URI korijena / baze kojim upravlja Controller.

Radnji s više riječi može se pristupiti pomoću 'crtica' u URI-u. Pogledajte niže djelovanje regulatora kao primjer:

public function getAdminProfile() ()

Ova radnja kontrolera u MyController odgovorit će na URI 'profile korisnika / administratora'.

4. Ovisno ubrizgavanje i kontroleri

Ubrizgavanje ovisnosti olakšava testiranje i održavanje vaših web aplikacija.

1. ubrizgavanje konstruktora

Laravel upravlja ovisnostima klase i rješava sve kontrolere. Vaš kontroler možda će trebati ovisnosti u konstruktoru, a pomoću Laravela možete namignuti gotovo svaku od tih ovisnosti. Laravel servisni kontroler riješit će sve ovisnosti automatski i stavit će ih u instancu kontrolera.

<_?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 ubrizgavanja

Osim ubrizgavanja ovisnosti u konstruktor, možete ih navesti i na načine vašeg kontrolera. Na primjer, na primjer Illuminate \ Http \ Zahtjev može se umetnuti u metodu kontrolera na sljedeći način:

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

Značajke Laravel kontrolera

Ispod je nekoliko značajki laravel regulatora:

  • MVC podrška: Laravel podržava MVC arhitektura. Razvoj čini ubrzanim jer jedan korisnik može raditi na logici, dok drugi radi na pogled. Više modela je podržano za model bez umnožavanja, jer je poslovna logika odvojena od logike prezentacije.
  • Autentifikacija: Laravel ima ugrađeni sustav za provjeru autentičnosti, morate voditi računa samo o drugim aspektima poput konfiguriranja pogleda, modela i kontrolera.
  • Sigurnost: Sigurnost je najvažniji čimbenik koji se mora uzeti u obzir u razvoju aplikacije. Laravel pruža sigurnost svojom ugrađenom aplikacijskom sigurnošću.
  • Artisan: Artisan pomaže u obavljanju ponavljajućih zadataka, a da ih programeri ne moraju ručno obavljati. One se mogu koristiti za stvaranje strukture baze podataka, koda, migracije kako bi se učinila upravljivom.
  • Predlošci: Pomoću inovativnog i moćnog pokretača predložaka tvrtke Laravel programeri mogu kreirati dinamične web aplikacije.

Preporučeni članci

Ovo je vodič za Laravel kontrolere. Ovdje smo razgovarali o priličnom broju koncepata kontrolera Laravel koji će vam omogućiti da stvorite svoj vlastiti kontroler za vašu aplikaciju, koji će istovremeno biti siguran i moćan. Možete pogledati i sljedeći članak da biste saznali više -

  1. Što je Laravel Framework?
  2. Laravelove naredbe
  3. Što je Laravel?
  4. Što je Servlet?

Kategorija: