Zpět na kurz

Lekce 7: Autentizace, mail a vlastní příkazy

Vítejte u poslední, ale velmi důležité lekce. Dnes se naučíme, jak do vaší aplikace přidat robustní autentizaci a jak posílat **e-maily**. Také si ukážeme, jak vytvářet a plánovat **vlastní Artisan příkazy**, což je ideální pro automatizaci úloh. Tyto dovednosti jsou nezbytné pro každou reálnou aplikaci.

Obsah lekce


Instalace a konfigurace Laravel Breeze

Laravel Breeze je skvělý startovací balíček pro přidání všech základních funkcí autentizace.

Instalace balíčku:

composer require laravel/breeze --dev

Generování login a registrace:

php artisan breeze:install

Spusťte npm install && npm run dev pro kompilaci frontendových assetů.

  1. Přihlášení a odhlášení uživatele:

    Po instalaci jsou routy pro přihlášení, registraci, reset hesla a odhlášení automaticky dostupné.

Přiřazení role novému uživateli (např. v app/Models/User.php):

protected static function boot()
{
    parent::boot();

    static::created(function ($user) {
        $user->assignRole('Customer');
    });
}

Mail konfigurace

Než začnete posílat maily, musíte nastavit server SMTP v souboru .env. [Image of an envelope]

MAIL_MAILER=smtp
MAIL_HOST=mailpit
MAIL_PORT=1025
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS="hello@example.com"
MAIL_FROM_NAME="${APP_NAME}"

Vytvoření a odeslání mailu

Pro snadné odesílání e-mailů se používají mailové třídy. Představte si, že chcete odeslat e-mail po vytvoření objednávky.

Vytvoření mail třídy:

php artisan make:mail OrderCreated

Odeslání mailu (např. z controlleru po uložení objednávky):

use App\Mail\OrderCreated;
use Illuminate\Support\Facades\Mail;

// Po vytvoření objednávky
$order = // ...
Mail::to($request->user())->send(new OrderCreated($order));

Vytvoření vlastního Artisan příkazu

Artisan příkazy jsou skvělé pro provádění úloh z příkazové řádky. Příkladem může být generování denního reportu.

Vytvoření příkazu:

php artisan make:command GenerateReport

Upravte metody signature a handle v nově vytvořeném souboru.

// app/Console/Commands/GenerateReport.php

protected $signature = 'report:generate {date?}';
protected $description = 'Generates a daily report for a given date.';

public function handle()
{
    $date = $this->argument('date') ?? now()->format('Y-m-d');
    $this->info("Generuji report pro datum: {$date}");
    // ... logika generování reportu
    $this->info('Report byl úspěšně vygenerován.');
}

Naplánování příkazu

Vlastní příkazy můžete automaticky spouštět v pravidelných intervalech pomocí plánovače úloh (Scheduler). Konfigurace se provádí v app/Console/Kernel.php.

// app/Console/Kernel.php

protected function schedule(Schedule $schedule): void
{
    $schedule->command('report:generate')->daily();
}

Shrnutí

Po této lekci žák zvládá klíčové aspekty vývoje webových aplikací. Umí implementovat **autentizaci** pomocí Laravel Breeze, odesílat **e-maily** a automatizovat opakované úkoly pomocí **vlastních Artisan příkazů** a **plánovače**. S tímto kurzem je nyní schopen tvořit kompletní a komplexní webové aplikace. Gratuluji! 🎉

David Kojecký

David Kojecký

Programátor ve společnosti Codefit a vývojář pro Mobilní lékárna CZ

´