Defective Code Logo

Total Downloads Latest Stable Version Latest Stable Version

English | العربية | বাংলা | Bosanski | Deutsch | Español | Français | हिन्दी | Italiano | 日本語 | 한국어 | मराठी | Português | Русский | Kiswahili | தமிழ் | తెలుగు | Türkçe | اردو | Tiếng Việt | 中文

Übersetzungswarnung

Dieses Dokument wurde automatisch übersetzt. Wenn es Übersetzungsfehler gibt, öffnen Sie bitte einen Pull Request auf dem Projekt und fügen Sie die übersetzte Datei zu docs/{ISO 639-1 Code}.md hinzu.

Einführung

MJML ist eine Auszeichnungssprache, die speziell entwickelt wurde, um den Prozess des Codierens von responsiven E-Mails zu vereinfachen. Die semantische Syntax gewährleistet Benutzerfreundlichkeit und Einfachheit, während die umfangreiche Bibliothek mit Standardkomponenten die Entwicklung beschleunigt und die Komplexität des E-Mail-Codebases reduziert. Der Open-Source-Engine von MJML generiert hochwertiges, responsives HTML, das bewährten Praktiken entspricht. Wenn Sie die Frustrationen bei der Arbeit mit Outlook erlebt haben, ist dieses Paket genau das Richtige für Sie.

Unsere MJML-Implementierung dient als Wrapper für die offizielle MJML-API. Sie ermöglicht eine bequeme Kompilierung von MJML in HTML direkt in PHP, ohne die Notwendigkeit von NodeJS. Dieses Paket eignet sich ideal für PHP-Anwendungen, die MJML integrieren möchten, ohne den Aufwand der Installation von NodeJS und der MJML CLI.

Beispiel

// Ohne Laravel
(new MJML)->render(
'<mjml><mj-body><mj-section><mj-column><mj-text>Hallo Welt</mj-text></mj-column></mj-section></mj-body></mjml>'
);
 
// Minimiertes HTML
(new MJML)->minify()->render(
'<mjml><mj-body><mj-section><mj-column><mj-text>Hallo Welt</mj-text></mj-column></mj-section></mj-body></mjml>'
);
 
// Mit Laravel
MJML::render(
'<mjml><mj-body><mj-section><mj-column><mj-text>Hallo Welt</mj-text></mj-column></mj-section></mj-body></mjml>'
);
 
// Mit Laravel und minimiertem HTML
MJML::minify()->render(
'<mjml><mj-body><mj-section><mj-column><mj-text>Hallo Welt</mj-text></mj-column></mj-section></mj-body></mjml>'
);

Installation

  1. Fügen Sie zunächst Folgendes zu Ihrer composer.json-Datei hinzu, um unserem Paket Anweisungen zum Herunterladen der richtigen Binärdateien für Ihr Betriebssystem zu geben, wenn unser Paket installiert wird. Die Binärdateien werden heruntergeladen, nachdem Sie install, update oder dump-autoload ausgeführt haben.

    {
    "post-autoload-dump": ["DefectiveCode\\MJML\\PullBinary::all"]
    }

    Die MJML-Binärdatei wird von unserem CDN bezogen und während der Installation oder Aktualisierung von Composer im "bin"-Ordner dieses Pakets gespeichert. Stellen Sie sicher, dass Sie die erforderlichen Binärdateien sowohl für Ihre lokale als auch für Ihre Produktionsumgebung geladen haben.

    Standardmäßig werden mit all alle Binärdateien abgerufen, die wir unterstützen. Wir empfehlen, dies auf die Betriebssysteme und Architektursysteme zu beschränken, die Sie benötigen, um Bandbreite und Installationszeiten zu sparen. Die folgenden Binärdateien stehen zur Verfügung.

    Betriebssystem Architektur Composer-Befehl nach dem Update
    Alle Alle DefectiveCode\MJML\PullBinary::all
    Darwin (MacOS) arm64 DefectiveCode\MJML\PullBinary::darwin-arm64
    Darwin (MacOS) x64 DefectiveCode\MJML\PullBinary::darwin-x64
    Linux arm64 DefectiveCode\MJML\PullBinary::linux-arm64
    Linux x64 DefectiveCode\MJML\PullBinary::linux-x64
  2. Installieren Sie anschließend das PHP-Paket, indem Sie den folgenden Composer-Befehl ausführen:

    composer require defectivecode/mjml
  3. Das war's! Wenn Sie Laravel verwenden, wird unser Paket automatisch mit der Paketerkennung von Laravel installiert.

Verwendung (ohne Laravel)

Wenn Sie Laravel verwenden, sehen Sie sich die Verwendung mit Laravel unten an.

MJML rendern

Um MJML zu rendern, übergeben Sie einfach Ihren MJML-String an die render-Methode:

use DefectiveCode\MJML;
 
$html = (new MJML)->render(
'<mjml><mj-body><mj-section><mj-column><mj-text>Hallo Welt</mj-text></mj-column></mj-section></mj-body></mjml>'
);

MJML validieren

Um MJML zu validieren, übergeben Sie einfach Ihren MJML-String an die isValid-Methode:

use DefectiveCode\MJML;
 
$isValid = (new MJML)->isValid(
'<mjml><mj-body><mj-section><mj-column><mj-text>Hallo Welt</mj-text></mj-column></mj-section></mj-body></mjml>'
);

Verwendung (mit Laravel)

MJML rendern

Um MJML zu rendern, übergeben Sie einfach Ihren MJML-String an die render-Methode der MJML-Fassade:

use DefectiveCode\MJML\Facades\MJML;
 
$html = MJML::render(
'<mjml><mj-body><mj-section><mj-column><mj-text>Hallo Welt</mj-text></mj-column></mj-section></mj-body></mjml>'
);

MJML validieren

Um MJML zu validieren, übergeben Sie einfach Ihren MJML-String an die isValid-Methode der MJML-Fassade:

use DefectiveCode\MJML\Facades\MJML;
 
$isValid = MJML::isValid(
'<mjml><mj-body><mj-section><mj-column><mj-text>Hallo Welt</mj-text></mj-column></mj-section></mj-body></mjml>'
);

Konfiguration

Sie können die Konfigurationsdatei mit folgendem Befehl veröffentlichen:

php artisan vendor:publish --provider="DefectiveCode\MJML\MJMLServiceProvider"

Dadurch wird eine mjml.php-Konfigurationsdatei in Ihrem config-Ordner erstellt. Alle in der Konfigurationsdatei aufgeführten Optionen werden dem config-Objekt übergeben, wenn Sie die MJML-Fassade verwenden.

Konfiguration

Alle Konfigurationsoptionen können direkt auf dem MJML-Objekt aufgerufen werden.

use DefectiveCode\MJML;
 
$html = (new MJML)
->setMinify(true)
->setBeautify(false)
->render(
'<mjml><mj-body><mj-section><mj-column><mj-text>Hallo Welt</mj-text></mj-column></mj-section></mj-body></mjml>'
);

Unser Paket folgt der gleichen Konfiguration wie das offizielle MJML-Paket, mit Ausnahme der folgenden Punkte:

Schriftarten

Unser Paket verwendet standardmäßig die folgenden Schriftarten:

Sie können die Schriftarten ändern, indem Sie die folgenden Methoden verwenden:

Kommentare

Kommentare werden standardmäßig beibehalten. Wenn Sie Kommentare entfernen möchten, können Sie die Methode removeComments() verwenden.

Sie können die removeComments() auch durch Aufrufen der Methode keepComments() rückgängig machen.

Includes ignorieren

Standardmäßig werden in unserem Paket alle mj-include-Tags eingefügt. Sie können dieses Verhalten anpassen, indem Sie die Methode ignoreIncludes(bool $ignore) aufrufen.

Verschönern

Unser Paket verschönert den HTML-Code standardmäßig mit js-beautify und den folgenden Standardoptionen:

Während js-beautify snake_case verwendet, um Optionen anzugeben, sollten Sie camelCase verwenden, wenn Sie unser Paket verwenden. Wir haben diese Entscheidung getroffen, um unser Paket konsistent mit den anderen Konfigurationsoptionen zu halten. Unser Paket konvertiert automatisch die camelCase-Optionen in snake_case.

Sie können eine der Optionen überschreiben, indem Sie eine gültige js-beautify-Konfiguration mit den folgenden Methoden bereitstellen:

Minifizieren

Unser Paket minifiziert den HTML-Code standardmäßig mit html-minifier-terser und den folgenden Standardoptionen:

Sie können eine der Optionen überschreiben, indem Sie eine gültige html-minifier-terser-Konfiguration mit den folgenden Methoden bereitstellen:

Validierungsstufe

Unser Paket validiert standardmäßig das MJML mit der Validierungsstufe soft. Sie können dies ändern, indem Sie die Methode validationLevel(ValidationLevel $validationLevel) verwenden. Die folgenden Validierungsstufen sind verfügbar:

Dateipfad

Unser Paket verwendet standardmäßig das Verzeichnis .. Sie können dies ändern, indem Sie die Methode filePath(string $path) aufrufen.

Juice

Wir bieten standardmäßig keine juice-Optionen an. Sie können Juice-Optionen hinzufügen, indem Sie die folgenden Methoden verwenden:

Support-Richtlinien

Vielen Dank, dass Sie sich für unser Open-Source-Paket entschieden haben! Bitte nehmen Sie sich einen Moment Zeit, um diese Support-Richtlinien zu lesen. Sie helfen Ihnen, das Beste aus unserem Projekt herauszuholen.

Unterstützung durch die Community

Unser Open-Source-Projekt wird von unserer großartigen Community angetrieben. Wenn Sie Fragen haben oder Unterstützung benötigen, sind StackOverflow und andere Online-Ressourcen Ihre besten Anlaufstellen.

Fehler und Priorisierung von Funktionen

Die Realität der Verwaltung eines Open-Source-Projekts bedeutet, dass wir nicht jeden gemeldeten Fehler oder Feature-Anfrage sofort bearbeiten können. Wir priorisieren Probleme in folgender Reihenfolge:

1. Fehler, die unsere kostenpflichtigen Produkte betreffen

Fehler, die sich auf unsere kostenpflichtigen Produkte auswirken, haben immer oberste Priorität. In einigen Fällen werden wir möglicherweise nur Fehler beheben, die uns direkt betreffen.

2. Community-Pull-Anfragen

Wenn Sie einen Fehler identifiziert haben und eine Lösung haben, reichen Sie bitte einen Pull-Antrag ein. Nach Problemen, die unsere Produkte betreffen, geben wir den nächsten höchsten Stellenwert für diese von der Community getriebenen Fixes. Nach Überprüfung und Genehmigung werden wir Ihre Lösung zusammenführen und Ihren Beitrag anerkennen.

3. Finanzielle Unterstützung

Für Probleme außerhalb der genannten Kategorien können Sie sich dafür entscheiden, ihre Lösung finanziell zu unterstützen. Jedes offene Problem ist mit einem Bestellformular verknüpft, über das Sie finanziell beitragen können. Wir priorisieren diese Probleme basierend auf dem bereitgestellten Betrag.

Community-Beiträge

Open Source gedeiht, wenn seine Community aktiv ist. Auch wenn Sie keine Fehler beheben, sollten Sie in Betracht ziehen, durch Code-Verbesserungen, Aktualisierungen der Dokumentation, Tutorials oder durch Unterstützung anderer in Community-Kanälen beizutragen. Wir ermutigen alle, als Community, die Open-Source-Arbeit zu unterstützen.

Zur Klarstellung: DefectiveCode priorisiert Fehler basierend darauf, wie sie sich auf unsere kostenpflichtigen Produkte auswirken, Community-Pull-Anfragen und die finanzielle Unterstützung, die für Probleme erhalten wird.

Lizenz - MIT Lizenz

Urheberrecht © Defective Code, LLC. Alle Rechte vorbehalten

Hiermit wird unentgeltlich jeder Person, die eine Kopie der Software und der zugehörigen Dokumentationsdateien (die "Software") erhält, die Erlaubnis erteilt, die Software uneingeschränkt zu nutzen, einschließlich und ohne Einschränkung der Rechte zur Verwendung, zum Kopieren, zur Änderung, zum Zusammenführen, zur Veröffentlichung, zur Verteilung, zur Unterlizenzierung und/oder zum Verkauf von Kopien der Software, und Personen, denen die Software bereitgestellt wird, dies unter den folgenden Bedingungen zu gestatten:

Der obige Urheberrechtsvermerk und dieser Genehmigungsvermerk sind in allen Kopien oder wesentlichen Teilen der Software enthalten.

DIE SOFTWARE WIRD "WIE SIE IST" ZUR VERFÜGUNG GESTELLT, OHNE JEGLICHE AUSDRÜCKLICHE ODER STILLSCHWEIGENDE GEWÄHRLEISTUNG, EINSCHLIESSLICH, ABER NICHT BESCHRÄNKT AUF DIE GEWÄHRLEISTUNG DER MARKTGÄNGIGKEIT, DER EIGNUNG FÜR EINEN BESTIMMTEN ZWECK UND DER NICHTVERLETZUNG. IN KEINEM FALL HAFTEN DIE AUTOREN ODER COPYRIGHT-INHABER FÜR ANSPRÜCHE, SCHÄDEN ODER ANDERE HAFTUNG, OB IN EINER VERTRAGS- ODER HAFTUNGSAKTION, DIE AUS ODER IN VERBINDUNG MIT DER SOFTWARE ODER DER VERWENDUNG ODER ANDEREN GESCHÄFTEN MIT DER SOFTWARE ENTSTEHT.

MJML - Defective Code