Wprowadzenie do sterowników Laravel

Cała aplikacja może zostać utworzona tylko przy użyciu zamknięć w pliku route.php, byłoby bałagan, ale będzie wykonalne. Co jeśli możesz zorganizować cały proces za pomocą klas kontrolerów? Zobaczmy jak. Kontrolery mogą grupować w ramach jednej klasy wszystkie logiki obsługi żądań. Aplikacja Directory / Http / Controllers odpowiada za przechowywanie kontrolerów. W ramach MVC „C” oznacza kontroler, który działa jako kierujący ruchem pośród widoków i modeli. W tym temacie poznamy Kontrolery Laravel.

Lista kontrolerów Laravel

Oto lista kontrolerów Laravel wymienionych poniżej

1. Podstawowe kontrolery

Poniżej możesz zobaczyć podstawowy przykład klasy kontrolera. Możesz tutaj zauważyć, że „MyController” rozszerza „Kontroler”. Tutaj „Controller” jest klasą podstawową. Klasa podstawowa „Kontroler” udostępnia metody takie jak „oprogramowanie pośrednie”, „wysyłanie” i „sprawdzanie poprawności”, co sprawia, że ​​jest to wygodne. Można użyć oprogramowania pośredniego, aby przypisać je do trasy kontrolera lub w konstruktorze 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)));
)
)

Trasa do MyController może być zdefiniowana w następujący sposób:

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

Przypisywanie oprogramowania pośredniego w plikach tras:

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

Gdy URI trasy pasuje do konkretnego żądania, wówczas metoda „show” w klasie „MyController” zostaje wykonana, a parametry określone w trasie również zostają przypisane do metody.

Niektóre dodatkowe wiśnie dla Ciebie:

  • Nie trzeba wspominać o pełnej przestrzeni nazw dla kontrolera, ponieważ „RouteServiceProvider” automatycznie ładuje się w grupie tras, która zawiera przestrzeń nazw, wszystkie pliki tras. Musisz tylko podać tę część nazwy, która pojawi się po App \ Http \ Controllers.
  • Jeśli chcesz zdefiniować kontroler pojedynczego działania, będziesz mógł to zrobić, umieszczając na kontrolerze pojedynczą metodę „__invoke”.

2. Kontrolery zasobów

Podczas tworzenia aplikacji wymagamy wykonywania operacji CRUD (Create, Read, Update, Delete). Dzięki kontrolerom zasobów Laravel wystarczy utworzyć kontroler i możesz odpocząć na Laravel. Trasa zasobów Laravela przydzieli trasy operacji CRUD do kontrolera, które również za pomocą jednego wiersza kodowania. W pliku route.php można zarejestrować jedną trasę dla wszystkich metod.

Weźmy przykład, załóżmy, że dla twojej aplikacji chcesz stworzyć kontroler, który obsługuje wszystkie przychodzące żądania HTTP względem przechowywanych „obrazów”. Zostanie to szybko wykonane przy pomocy polecenia Rzemieślnika. Spójrzmy szybko na polecenie rzemieślnika „make: controller”, aby utworzyć jeden podobny kontroler w następujący sposób:

php artisan make:controller ImageController --resource

Kontroler zostanie wygenerowany w aplikacji / Http / Controllers / ImageController.php przez powyższe polecenie. Kontroler będzie składał się z metody dedykowanej każdej dostępnej operacji na zasobach.

Teraz możesz zadeklarować trasę do obsługi różnych działań takich jak to:

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

Ta deklaracja trasy tworzy wiele tras, które mogą obsłużyć wiele działań. Ten kontroler będzie miał określone metody dla każdej dostępnej akcji. Będzie także zawierać notatki, które poinformują cię o obsługiwanych identyfikatorach URI i czasownikach HTTP.

Jeśli chcesz zarejestrować więcej niż jeden kontroler zasobów za jednym razem, możesz to zrobić za pomocą tablicy, jak pokazano poniżej:

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

Tabela akcji

CzasownikURI / ścieżkaWydarzenie akcjiNazwa trasy
POCZTA/zdjęciasklepimages.store
OTRZYMAĆ/zdjęciaindeksimages.index
OTRZYMAĆ/ images / createStwórzimages.create
OTRZYMAĆ/ images / (image)pokazaćimages.show
PUT / PATCH/ images / (image)aktualizacjaimages.update
OTRZYMAĆ/ images / (image) / editedytowaćimages.edit
USUNĄĆ/ images / (image)zniszczyćimages.destroy

3. Domniemane kontrolery

Za pomocą tych kontrolerów możesz obsłużyć każdą akcję, definiując tylko jedną trasę. Musisz najpierw zdefiniować trasę za pomocą Route :: kontrolera w następujący sposób:

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

Tutaj dwa argumenty są przekazywane do kontrolera.

  1. Podstawowy identyfikator URI
  2. Nazwa klasy kontrolera

Teraz wystarczy dodać metody do „MyController” z prefiksem HTTP.

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

„Indeks” metod będzie odpowiadał na „użytkowników”, którym jest kontroler URI root / base URI.

Do akcji z wieloma słowami można uzyskać dostęp za pomocą „myślnika” w URI. Zobacz przykład działania kontrolera poniżej:

public function getAdminProfile() ()

Ta akcja kontrolera w MyController odpowie na URI „users / admin-profile”.

4. Wstrzykiwanie zależności i sterowniki

Zależności Wtrysk ułatwia testowanie i zarządzanie aplikacjami internetowymi.

1. Wtrysk Konstruktora

Laravel zarządza zależnościami klas i rozwiązuje wszystkie kontrolery. Twój kontroler może potrzebować zależności w konstruktorze, dzięki Laravelowi możesz wpisać prawie każdą z tych zależności. Kontroler usługi Laravel automatycznie rozwiąże wszystkie zależności i wstrzykuje je do wystąpienia 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 wtrysku

Oprócz wstrzykiwania zależności do konstruktora, możesz także wpisać je w metody kontrolera. Na przykład instancja Illuminate \ Http \ Request może zostać wstrzyknięta do metody kontrolera w następujący sposób:

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

Funkcje kontrolerów Laravel

Poniżej kilka funkcji kontrolera laravel:

  • Obsługa MVC: Laravel jest wspierany przez architekturę MVC. Sprawia, że ​​programowanie jest szybkie, ponieważ jeden użytkownik może pracować na logice, podczas gdy drugi działa na widoku. Wiele modeli jest obsługiwanych dla modelu bez powielania, ponieważ logika biznesowa jest oddzielona od logiki prezentacji.
  • Uwierzytelnianie: Laravel ma wbudowany system uwierzytelniania, musisz tylko zadbać o inne aspekty, takie jak konfigurowanie widoków, modeli i kontrolerów.
  • Bezpieczeństwo: Bezpieczeństwo jest najważniejszym czynnikiem, który należy wziąć pod uwagę przy opracowywaniu aplikacji. Laravel zapewnia bezpieczeństwo dzięki wbudowanemu bezpieczeństwu aplikacji.
  • Artisan: Artisan pomaga w wykonywaniu powtarzalnych zadań bez konieczności ręcznego wykonywania przez programistów. Można ich użyć do stworzenia struktury bazy danych, kodu, migracji, aby była zarządzalna.
  • Szablony: Dzięki innowacyjnemu i wydajnemu silnikowi szablonów Laravel programiści mogą tworzyć dynamiczne aplikacje internetowe.

Polecane artykuły

To jest przewodnik po sterownikach Laravel. Tutaj omawiamy wiele koncepcji kontrolerów Laravel, które pozwolą ci stworzyć własny kontroler dla twojej aplikacji, który będzie jednocześnie bezpieczny i wydajny. Możesz także spojrzeć na następujący artykuł, aby dowiedzieć się więcej -

  1. Co to jest Laravel Framework?
  2. Polecenia Laravela
  3. Co to jest Laravel?
  4. Co to jest Servlet?