Zum Inhalt springen
BirdAPI powered by SKYLITE.DESIGN
Kontakt
Zurück zum Blog

Optimaler Einsatz der neuen Optionen für make:mail

Meist gelesen

Fortgeschritten

  • Laravel 12
  • PHP 8.4

Laravel 11.15 bringt einige Verbesserungen für den Befehl make:mail, die die Erstellung von Mailable-Klassen erleichtern und flexibler gestalten.

PDF / Drucken
0 Bewertungen
1.648 0 Kommentare

Einführung

Der Befehl make:mail in Laravel dient zur Erstellung von Mailable-Klassen, die für den Versand von E-Mails verwendet werden. Mit den neuen Optionen können Sie: Eine Mailable-Klasse mit einer Markdown-Vorlage erstellen. Eine Mailable-Klasse mit einer bestehenden Ansicht verknüpfen. Bestehende Dateien ohne Rückfrage überschreiben.

Erstellung einer Mailable-Klasse mit Markdown-Vorlage (--markdown)

Markdown ermöglicht es Ihnen, E-Mail-Vorlagen einfacher zu erstellen und zu pflegen. Mit der Option --markdown können Sie schnell eine Mailable-Klasse mit einer verknüpften Markdown-Vorlage erstellen.
shell
php artisan make:mail OrderShipped --markdown=emails.orders.shipped

Ergebnis

Dieser Befehl generiert zwei Dateien: Eine Mailable-Klasse OrderShipped unter app/Mail/OrderShipped.php. Eine Markdown-Vorlage shipped.blade.php unter resources/views/emails/orders.

Code-Beispiel für die Markdown-Vorlage

blade
namespace App\Mail;

use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;

class OrderShipped extends Mailable
{
    use Queueable, SerializesModels;

    public $order;

    /**
     * Create a new message instance.
     *
     * @return void
     */
    public function __construct($order)
    {
        $this->order = $order;
    }

    /**
     * Build the message.
     *
     * @return $this
     */
    public function build()
    {
        return $this->markdown('emails.orders.shipped')
                    ->with([
                        'orderName' => $this->order->name,
                        'orderPrice' => $this->order->price,
                    ]);
    }
}
blade
@component('mail::message')
# Bestellung versandt

Ihre Bestellung wurde versandt!

**Bestellname:** {{ $orderName }}

**Preis:** {{ $orderPrice }}

@component('mail::button', ['url' => ''])
Bestellung ansehen
@endcomponent

Danke, dass Sie bei uns bestellt haben!

{{ config('app.name') }}
@endcomponent

Verknüpfung einer Mailable-Klasse mit einer bestehenden Ansicht (--view)

Mit der Option --view können Sie eine Mailable-Klasse erstellen, die eine bereits vorhandene Blade-Vorlage verwendet. Beispiel Erstellen Sie eine neue Mailable-Klasse mit einer bestehenden Ansicht:
shell
php artisan make:mail InvoiceGenerated --view=emails.invoice

Ergebnis

Dieser Befehl generiert eine Mailable-Klasse InvoiceGenerated unter app/Mail/InvoiceGenerated.php, die die vorhandene Ansicht emails.invoice verwendet.
blade
namespace App\Mail;

use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;

class InvoiceGenerated extends Mailable
{
    use Queueable, SerializesModels;

    public $invoice;

    /**
     * Create a new message instance.
     *
     * @return void
     */
    public function __construct($invoice)
    {
        $this->invoice = $invoice;
    }

    /**
     * Build the message.
     *
     * @return $this
     */
    public function build()
    {
        return $this->view('emails.invoice')
                    ->with([
                        'invoiceNumber' => $this->invoice->number,
                        'invoiceAmount' => $this->invoice->amount,
                    ]);
    }
}

Überschreiben bestehender Dateien ohne Rückfrage (--force)

Mit der Option --force können Sie bestehende Dateien überschreiben, ohne dass eine Bestätigung erforderlich ist. Dies ist nützlich, wenn Sie Änderungen vornehmen und sicherstellen möchten, dass die neuesten Versionen der Dateien erstellt werden.
Beispiel Erstellen Sie eine neue Mailable-Klasse und überschreiben Sie bestehende Dateien:
shell
php artisan make:mail WelcomeUser --markdown=emails.welcome --force
Ergebnis Dieser Befehl überschreibt die vorhandene Mailable-Klasse und die Markdown-Vorlage, falls diese bereits existieren.

Fazit

Die neuen Optionen für den Befehl make:mail in Laravel 11.15 bieten eine erhöhte Flexibilität und Effizienz bei der Erstellung von Mailable-Klassen. Die Option --markdown ermöglicht es Ihnen, schnell und einfach E-Mails mit Markdown-Vorlagen zu erstellen, während die Option --view die Nutzung bestehender Ansichten erleichtert. Mit der Option --force können Sie sicherstellen, dass Ihre Änderungen sofort angewendet werden, ohne bestehende Dateien manuell löschen zu müssen. Diese Verbesserungen machen die E-Mail-Erstellung in Laravel noch leistungsfähiger und benutzerfreundlicher. Probieren Sie diese Optionen aus und optimieren Sie Ihren E-Mail-Versandprozess.
Viel Erfolg bei der Umsetzung und viel Spaß beim Coden!

Kommentare 0

Noch keine Kommentare. Seien Sie der Erste!

Kommentar schreiben

Ihre Meinung ist willkommen — Kommentare erscheinen nach kurzer Prüfung.

Kommentare werden vor Veröffentlichung moderiert.