0Pricing
PHP Academy · Aula

Controladores e ações

Crie controladores com artisan e trate solicitações em métodos de ação.

Controladores e ações é uma aula grátis de PHP Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de PHP Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de PHP Academy inclui 4 aulas no total.

O que é um Controlador?

Um controlador agrupa a lógica relacionada ao tratamento de requisições. Em vez de usar fechamentos nos arquivos de rota, delegue o processamento aos métodos do controlador (ações).

Gerando um Controlador

Use o Artisan para criar a estrutura básica de um controlador.

$ php artisan make:controller UserController
$ php artisan make:controller PostController --resource

Controlador Básico

Um controlador estende Controller e tem métodos públicos para cada ação de rota.

<?php
namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\User;

class UserController extends Controller
{
    public function index(): \Illuminate\View\View
    {
        $users = User::all();
        return view("users.index", compact("users"));
    }
}

Acessando a Requisição

Declare Illuminate\Http\Request como indicação de tipo no método da ação — o Laravel o injeta automaticamente.

<?php
public function store(Request $request): \Illuminate\Http\RedirectResponse
{
    $name  = $request->input("name");
    $email = $request->input("email");
    User::create(["name" => $name, "email" => $email]);
    return redirect()->route("users.index");
}

Validação de Formulário

Use $request->validate() para validar os dados de entrada. Em caso de falha, o Laravel redireciona automaticamente de volta com os erros.

<?php
public function store(Request $request): \Illuminate\Http\RedirectResponse
{
    $validated = $request->validate([
        "name"  => "required|string|max:255",
        "email" => "required|email|unique:users",
    ]);
    User::create($validated);
    return redirect()->route("users.index");
}

Métodos de Controlador de Recurso

Um controlador de recurso tem 7 métodos convencionais: index, create, store, show, edit, update, destroy.

Controladores de Ação Única

Controladores invocáveis têm um único método __invoke() — ideais para ações que fazem exatamente uma coisa.

<?php
class SendWelcomeEmail extends Controller
{
    public function __invoke(User $user): void
    {
        Mail::to($user)->send(new WelcomeMail($user));
    }
}
// Route:
Route::post("/users/{user}/welcome", SendWelcomeEmail::class);

Middleware de Controlador

Aplique middleware a ações específicas usando o método middleware() no construtor.

<?php
public function __construct()
{
    $this->middleware("auth")->except(["index", "show"]);
}

Injeção de Dependências

Declare serviços como parâmetros de métodos de ação usando indicação de tipo — o Laravel os resolve a partir do contêiner de serviços.

<?php
public function store(Request $request, Mailer $mailer): JsonResponse
{
    // $mailer is auto-injected
}

Retornando Respostas

Os controladores podem retornar: visualizações, redirecionamentos, respostas JSON e downloads de arquivos.

<?php
return view("users.show", compact("user"));
return redirect()->back()->with("status", "Saved!");
return response()->json($user);
return response()->download(storage_path("report.pdf"));

Namespace dos Controladores

Por padrão, todos os controladores ficam em App\Http\Controllers. Os subdiretórios criam subespaços de nomes: App\Http\Controllers\Admin\UserController.

Mantendo os Controladores Enxutos

Os controladores devem delegar a lógica de negócio a classes de serviço ou ações. Procure criar controladores que apenas: validem os dados de entrada, chamem um serviço e retornem uma resposta.

Resumo

Gere controladores com o Artisan. Declare Request e serviços com indicação de tipo para obter injeção automática. Use validate() para validar os dados de entrada. Mantenha os controladores enxutos — delegue o trabalho aos serviços.

Verificação Rápida

Qual comando do Artisan gera um controlador de recurso?

Perguntas Frequentes

A aula “Controladores e ações” é grátis?

Sim — o texto completo de “Controladores e ações” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de PHP Academy, atualize para CoddyKit PRO. O curso de PHP Academy inclui 4 aulas no total.

O que vou aprender em “Controladores e ações”?

Crie controladores com artisan e trate solicitações em métodos de ação. Você pratica PHP Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar PHP Academy?

Nenhuma experiência prévia é necessária. PHP Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “Controladores e ações”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de PHP Academy?

Sim. Cada aula de PHP Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Estrutura de projetos Laravel
  2. Definição de rotas no Laravel
  3. Controladores e ações
  4. Modelos e visualizações Blade
← Voltar para PHP Academy