Introduzione ai controller Laravel

Tutta la tua applicazione può essere creata semplicemente usando le Chiusure nel file route.php, diventerebbe disordinata ma sarà fattibile. E se fosse possibile organizzare l'intero processo con l'aiuto delle classi Controller? Vediamo come. I controller sono in grado di raggruppare all'interno di una classe, tutte le logiche associate della gestione delle richieste. L'app Directory / Http / Controller è responsabile dell'archiviazione dei controller. Nel framework MVC, 'C' sta per Controller che funge da direzione del traffico tra Viste e Modelli. In questo argomento, impareremo a conoscere i controller Laravel.

Elenco dei controller Laravel

Ecco la lista dei controller Laravel menzionata di seguito

1. Controller di base

Di seguito puoi dare un'occhiata a un esempio di base della classe controller. Qui puoi notare che "MyController" estende "Controller". Qui "Controller" è la classe base. La classe base "Controller" fornisce metodi come "middleware", "dispatch" e metodi "validate" che lo rendono conveniente. È possibile utilizzare il middleware per assegnarlo al percorso del controller o nel costruttore del controller.

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

Il percorso per MyController può essere definito in questo modo:

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

Assegnazione del middleware nei file di route:

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

Quando l'URI della route corrisponde a una richiesta specifica, viene eseguito il metodo "show" sulla classe "MyController" e vengono assegnati al metodo anche i parametri specificati nella route.

Alcune ciliegie extra per te:

  • Non è necessario menzionare lo spazio dei nomi completo per il controller poiché "RouteServiceProvider" viene caricato automaticamente nel gruppo di route in cui è contenuto lo spazio dei nomi, tutti i file di route. Devi semplicemente specificare quella parte del nome che apparirà dopo App \ Http \ Controllers.
  • Se desideri definire il controller ad azione singola, sarai in grado di farlo posizionando un singolo metodo '__invoke' sul controller.

2. Controller delle risorse

Durante la creazione di un'applicazione, è necessario eseguire operazioni CRUD (Crea, Leggi, Aggiorna, Elimina). Con i controller di risorse Laravel, devi solo creare il controller e puoi lasciare il resto su Laravel. La rotta delle risorse Laravel assegnerà le route dell'operazione CRUD al controller anche solo con una riga di codifica. Un singolo percorso può essere registrato per tutti i metodi nel file route.php.

Facciamo un esempio, supponiamo che per la tua applicazione desideri creare un controller che gestisca tutte le richieste HTTP in entrata relative alle "immagini" memorizzate. Questo sarà fatto rapidamente con l'aiuto del comando Artisan. Diamo un'occhiata al comando Artisan 'make: controller' rapidamente per creare un controller simile come segue:

php artisan make:controller ImageController --resource

Un comando verrà generato sull'app / Http / Controller / ImageController.php dal comando sopra. Questo controller consisterà in un metodo dedicato a ciascuna operazione di risorsa disponibile.

Ora puoi dichiarare un percorso per gestire varie azioni come questa:

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

Questa dichiarazione di percorso crea molti percorsi in grado di gestire numerose azioni. Questo controller avrà metodi specifici per ogni azione disponibile. Includerà anche le note che ti informeranno sugli URI e sui verbi HTTP che vengono gestiti.

Se si desidera registrare più di un controller di risorse in una volta sola, è possibile farlo con l'aiuto di un array come mostrato di seguito:

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

Tabella delle azioni

VerboURI / PercorsoEvento d'azioneNome percorso
INVIARE/immaginimemorizzareimages.store
OTTENERE/immaginiindiceimages.index
OTTENERE/ images / crearecreareimages.create
OTTENERE/ images / (image)mostrareimages.show
PUT / PATCH/ images / (image)aggiornareimages.update
OTTENERE/ Images / (image) / modificaremodificareimages.edit
ELIMINA/ images / (image)distruggereimages.destroy

3. Controller impliciti

Con l'aiuto di questi controller, puoi gestire ogni azione semplicemente definendo un percorso. Devi prima definire il percorso usando Route :: controller in questo modo:

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

Qui, due argomenti vengono passati al controller.

  1. URI di base
  2. Nome della classe del controllore

Ora devi solo aggiungere metodi a 'MyController' con il verbo HTTP con prefisso su di essi.

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

I metodi "indice" risponderanno a "utenti", ovvero l'URI radice / base gestito dal controller.

È possibile accedere a un'azione con più parole utilizzando "trattino" nell'URI. Fare riferimento all'azione del controller di seguito come esempio:

public function getAdminProfile() ()

Questa azione del controller in MyController risponderà all'URI "utenti / profilo amministratore".

4. Iniezione delle dipendenze e controller

Dipendenze L'iniezione rende le applicazioni Web più facili da testare e gestire.

1. Iniezione del costruttore

Laravel gestisce le dipendenze di classe e risolve tutti i controller. Il tuo controller potrebbe aver bisogno di dipendenze nel costruttore, con Laravel, puoi suggerire quasi tutte queste dipendenze. Il controller di servizio Laravel risolverà automaticamente tutte le dipendenze e le inietterà nell'istanza del controller.

<_?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. Iniezione di metodo

Oltre a iniettare dipendenze nel costruttore, è anche possibile inserirle nei metodi del controller. Ad esempio, l'istanza Illuminate \ Http \ Request può essere iniettata nel metodo del controller come segue:

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

Caratteristiche dei controller Laravel

Di seguito sono riportate alcune funzionalità del controller laravel:

  • Supporto MVC: Laravel è supportato da MVC Architecture. Rende lo sviluppo veloce in quanto un utente può lavorare sulla logica mentre l'altro lavora in vista. Le viste multiple sono supportate per un modello senza duplicazione poiché la logica aziendale è separata dalla logica di presentazione.
  • Autenticazione: Laravel ha un sistema integrato per l'autenticazione, devi solo occuparti di altri aspetti come la configurazione di viste, modelli e controller.
  • Sicurezza: la sicurezza è il fattore principale da considerare nello sviluppo di un'applicazione. Laravel offre sicurezza grazie alla sicurezza integrata delle applicazioni.
  • Artigiano: Artigiano aiuta a svolgere attività ripetitive senza che vengano eseguite manualmente dagli sviluppatori. Questi possono essere usati per creare la struttura del database, il codice, una migrazione in modo da renderla gestibile.
  • Modelli: con l'innovativo e potente motore di modelli di Laravel, gli sviluppatori possono creare applicazioni Web dinamiche.

Articoli consigliati

Questa è una guida ai controller Laravel. Qui discutiamo un buon numero di concetti di controller Laravel che ti permetteranno di creare il tuo controller personale per la tua applicazione, che sarà sicuro e potente allo stesso tempo. Puoi anche leggere il seguente articolo per saperne di più -

  1. Che cos'è Laravel Framework?
  2. Comandi Laravel
  3. Che cos'è Laravel?
  4. Che cos'è Servlet?

Categoria: