Úvod do Laravel Controllerů

Celá vaše aplikace může být vytvořena pouze pomocí Closures v souboru roads.php, to by se stalo chaotickým, ale bude proveditelné. Co když dokážete celý proces zorganizovat pomocí tříd Controller? Uvidíme jak. Řadiče jsou schopné skupiny v rámci jedné třídy, všechny přidružené logiky zpracování požadavků. Adresář app / Http / Controllers je zodpovědný za ukládání kontrolerů. V rámci MVC znamená „C“ Controller, který funguje jako směrování provozu mezi pohledy a modely. V tomto tématu se dozvíme o Laravel Controllerech.

Seznam Laravel kontrolérů

Zde je uveden seznam Laravel Controllerů

1. Základní řadiče

Níže si můžete prohlédnout základní příklad třídy kontrolérů. Zde si můžete všimnout, že „MyController“ rozšiřuje „Controller“. Zde je 'Controller' základní třída. Základní třída 'Controller' poskytuje metody jako 'middleware', 'expedice' a 'validate' metody, díky kterým je to pohodlné. Pomocí middlewaru ji můžete přiřadit k trase řadiče nebo v konstruktoru řadiče.

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

Trasu k MyController lze definovat takto:

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

Přiřazení middlewaru v souborech trasy:

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

Když se trasa URI shoduje se specifickým požadavkem, provede se metoda 'show' na třídě 'MyController' a parametry zadané v trase se také přiřadí k této metodě.

Některé další třešně pro vás:

  • Není třeba zmiňovat celý jmenný prostor pro řadič, protože 'RouteServiceProvider' se automaticky načte do skupiny tras, která obsahuje jmenný prostor, všechny soubory tras. Stačí zadat část názvu, která se zobrazí za App \ Http \ Controllers.
  • Pokud si přejete definovat jednočinný řadič, můžete tak učinit umístěním jediné metody „__invoke“ na svůj řadič.

2. Řadiče zdrojů

Při vytváření aplikace vyžadujeme provedení operací CRUD (Create, Read, Update, Delete). S ovladači zdrojů Laravel stačí vytvořit ovladač a na Laravelu můžete nechat odpočinek. Trasa zdroje Laravel přidělí operační cesty CRUD k řadiči, který příliš jen s jedním řádkem kódování. Jedna cesta může být zaregistrována pro všechny metody v souboru route.php.

Vezměme si příklad, předpokládejme, že pro vaši aplikaci chcete vytvořit řadič, který bude zpracovávat všechny příchozí požadavky HTTP týkající se uložených „obrázků“. To se rychle provede pomocí příkazu řemeslníka. Podívejme se rychle na příkaz Artisan 'make: controller', abychom vytvořili jeden podobný řadič takto:

php artisan make:controller ImageController --resource

Řadič bude generován v aplikaci / Http / Controllers / ImageController.php výše uvedeným příkazem. Tento řadič bude sestávat z metody věnované každé dostupné operaci zdroje.

Nyní můžete vyhlásit cestu, jak zvládnout různé akce, jako je tato:

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

Toto prohlášení o trase vytváří mnoho tras, které zvládnou řadu akcí. Tento řadič bude mít specifické metody pro každou dostupnou akci. Bude také obsahovat poznámky, které vás budou informovat o URI a HTTP slovesích, která jsou zpracovávána.

Pokud si přejete zaregistrovat více než jeden zdroj prostředků najednou, můžete tak učinit pomocí pole, jak je ukázáno níže:

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

Tabulka akcí

SlovesoURI / cestaAkční událostNázev trasy
POŠTA/snímkyobchodimages.store
DOSTAT/snímkyindeximages.index
DOSTAT/ images / createvytvořitimages.create
DOSTAT/ images / (image)ukázatimages.show
PUT / PATCH/ images / (image)Aktualizaceimages.update
DOSTAT/ images / (image) / editUpravitimages.edit
ODSTRANIT/ images / (image)zničitimages.destroy

3. Implicitní řadiče

S pomocí těchto řadičů můžete zvládnout každou akci pouze definováním jedné trasy. Nejprve musíte definovat trasu pomocí řadiče Route ::, jako je tento:

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

Zde jsou předávány dva argumenty řadiči.

  1. Základní URI
  2. Název třídy řadiče

Nyní musíte do 'MyController' přidat metody s předponou HTTP HTTP.

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

Metody 'index' budou reagovat na 'users', což je URI root / base URI zpracovávané řadičem.

K akci s více slovy lze získat přístup pomocí 'pomlčky' v URI. Příkladem je níže uvedená akce ovladače:

public function getAdminProfile() ()

Tato akce ovladače v MyController bude reagovat na URI 'users / admin-profile'.

4. Vstřikování a regulátory závislosti

Závislost Vstřikování usnadňuje testování a údržbu webových aplikací.

1. Vstřikování konstruktoru

Laravel řídí závislosti na třídě a řeší všechny řadiče. Váš správce může potřebovat závislosti ve konstruktoru, s Laravelem můžete napsat téměř jakoukoli z těchto závislostí. Laravel servisní řadič automaticky vyřeší všechny závislosti a vloží je do instance kontroléru.

<_?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. Vstřikování metody

Kromě toho, že do konstruktoru vstřikujete závislosti, můžete je také napsat do metod vašeho ovladače. Například instance Illuminate \ Http \ Request může být injektována do metody řadiče následujícím způsobem:

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

Vlastnosti Laravel Controllerů

Níže uvádíme několik funkcí regulátoru larvů:

  • Podpora MVC: Laravel je podporován architekturou MVC. Urychluje vývoj, protože jeden uživatel může pracovat na logice, zatímco druhý pracuje na zobrazení. Pro model je podporováno více pohledů bez duplikace, protože obchodní logika je oddělena od logiky prezentace.
  • Ověřování: Laravel má vestavěný systém pro ověřování, musíte se postarat pouze o další aspekty, jako je konfigurace pohledů, modelů a kontrolérů.
  • Zabezpečení: Zabezpečení je nejdůležitějším faktorem, který je třeba brát v úvahu při vývoji aplikace. Laravel poskytuje zabezpečení díky vestavěné bezpečnosti aplikací.
  • Řemeslník: Řemeslník pomáhá při provádění opakujících se úkolů, aniž by je museli vývojáři provádět ručně. Tyto mohou být použity k vytvoření struktury databáze, kódu, migrace, aby byla spravovatelná.
  • Šablony: S inovativním a výkonným modulem Laravel mohou vývojáři vytvářet dynamické webové aplikace.

Doporučené články

Toto je průvodce Laravel Controllers. Zde diskutujeme o velkém počtu konceptů regulátorů Laravel, které vám umožní vytvořit si vlastní ovladač pro vaši aplikaci, který bude zároveň bezpečný a výkonný. Další informace naleznete také v následujícím článku -

  1. Co je Laravel Framework?
  2. Laravelské příkazy
  3. Co je Laravel?
  4. Co je Servlet?

Kategorie: