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
- Mail konfigurace
- Odeslání mailu při vytvoření objednávky
- Vytvoření vlastního Artisan příkazu
- Naplánování příkazu
- Shrnutí
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ů.
- 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! 🎉
´