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 | 中文

Uppgradering

Om du uppgraderar från en tidigare version, vänligen se Uppgraderingsguiden för brytande förändringar och migrationssteg.

Introduktion

MJML är ett markup-språk som är speciellt designat för att förenkla processen att koda responsiva e-postmeddelanden. Dess semantiska syntax säkerställer enkelhet och lätthet, medan det omfattande biblioteket av standardkomponenter påskyndar utvecklingen och minskar komplexiteten i din e-post kodbas. Den öppen källkodsmotorn av MJML genererar högkvalitativ, responsiv HTML som följer bästa praxis. Om du har upplevt frustrationen av att arbeta med Outlook, är detta paket skräddarsytt för dig.

Vår MJML-implementation fungerar som ett wrapper för den officiella MJML API. Det möjliggör bekväm kompilering av MJML till HTML direkt inom PHP, utan behov av NodeJS. Detta paket är idealiskt för PHP-applikationer som vill integrera MJML utan besväret med att installera NodeJS och MJML CLI.

Exempel

// Utan Laravel
(new MJML)->render(
'<mjml><mj-body><mj-section><mj-column><mj-text>Hello World</mj-text></mj-column></mj-section></mj-body></mjml>'
);
 
// Minifierad HTML
(new MJML)->minify()->render(
'<mjml><mj-body><mj-section><mj-column><mj-text>Hello World</mj-text></mj-column></mj-section></mj-body></mjml>'
);
 
// Med Laravel
MJML::render(
'<mjml><mj-body><mj-section><mj-column><mj-text>Hello World</mj-text></mj-column></mj-section></mj-body></mjml>'
);
 
// Med Laravel och minifierad HTML
MJML::minify()->render(
'<mjml><mj-body><mj-section><mj-column><mj-text>Hello World</mj-text></mj-column></mj-section></mj-body></mjml>'
);

Installation

  1. Först lägg till följande i din composer.json fil för att instruera vårt paket att hämta de korrekta binärerna för ditt operativsystem när vårt paket installeras. Binärerna kommer att laddas ner efter att du kört install, update, eller dump-autoload.

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

    MJML-binären kommer att hämtas från vår CDN och sparas i "bin"-mappen av detta paket under composer-installation eller uppdatering. Se till att du har de nödvändiga binärerna laddade för både din lokala och produktionsmiljö.

    Som standard kommer all att hämta alla binärer vi stöder. Vi rekommenderar att du begränsar detta till de operativ- och arkitektursystem du behöver för att spara bandbredd och installationstid. Följande är de tillgängliga binärerna.

    Operativsystem Arkitektur Composer Post Update Command
    Alla Alla DefectiveCode\MJML\PullBinary::all
    Darwin (MacOS) arm64 DefectiveCode\MJML\PullBinary::darwin-arm64
    Darwin (MacOS) x64 DefectiveCode\MJML\PullBinary::darwin-x64
    Linux (glibc) arm64 DefectiveCode\MJML\PullBinary::linux-arm64
    Linux (glibc) x64 DefectiveCode\MJML\PullBinary::linux-x64
    Linux (musl) arm64 DefectiveCode\MJML\PullBinary::linux-arm64-musl
    Linux (musl) x64 DefectiveCode\MJML\PullBinary::linux-x64-musl
  2. Sedan, installera PHP-paketet genom att köra följande composer-kommando:

    composer require defectivecode/mjml
  3. Det är allt! Om du använder Laravel kommer vårt paket automatiskt att installeras med Laravel's paketupptäcktsfunktion.

Användning (Utan Laravel)

Se användningen med Laravel nedan om du använder Laravel.

Rendering av MJML

För att rendera MJML, passera helt enkelt din MJML-sträng till render-metoden:

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

Validering av MJML

För att validera MJML, passera helt enkelt din MJML-sträng till isValid-metoden:

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

Användning (Med Laravel)

Rendering av MJML

För att rendera MJML, passera helt enkelt din MJML-sträng till render på MJML-facaden:

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

Validering av MJML

För att validera MJML, passera helt enkelt din MJML-sträng till isValid-metoden på MJML-facaden:

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

Konfiguration

Du kan publicera konfigurationsfilen med följande kommando:

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

Detta kommer att skapa en mjml.php konfigurationsfil i din config-mapp. Alla alternativ som anges i konfigurationsfilen skickas till config-objektet när du använder MJML-facaden.

Konfiguration

Alla konfigurationsalternativ kan ställas in genom att direkt anropa följande metoder på MJML-objektet.

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

Vårt paket följer samma konfiguration som det officiella MJML-paketet förutom följande:

Typsnitt

Vårt paket använder följande typsnitt som standard:

Du kan ändra typsnitten genom att använda följande metoder:

Kommentarer

Kommentarer sparas som standard. Om du vill ta bort kommentarer kan du använda metoden removeComments().

Du kan också återställa removeComments() genom att anropa metoden keepComments().

Ignorera Inkluderingar

Som standard ignorerar vårt paket mj-include-taggar. Detta matchar MJML 5:s säkrare standard. Du kan aktivera inkluderingar genom att anropa ignoreIncludes(false).

När du aktiverar inkluderingar, använd filePath(string $path) som basdatalagringsplats och includePath(string|array|null $path) för att tillåta ytterligare inkluderingskataloger.

Försköna

Vårt paket kommer att försköna HTML med hjälp av js-beautify. MJML 5.2 använder också js-beautify internt, men detta paket behåller försköningsnivå på wrapper-nivå så att anpassade PHP beautifyOptions fortsätter att fungera. Standardalternativen är:

Medan js-beautify använder snake_case för att tillhandahålla alternativ, bör du använda camelCase när du använder vårt paket. Vi gjorde detta val för att hålla vårt paket konsekvent med resten av konfigurationsalternativen. Vårt paket kommer automatiskt att konvertera camelCase-alternativen till snake_case.

Du kan åsidosätta något av dessa alternativ genom att ange en giltig js-beautify-konfiguration med hjälp av följande metoder:

Minifiera

Vårt paket kommer att minifiera HTML-utmatningen när det är aktiverat. Minifiering utför följande:

Du kan aktivera eller avaktivera minifiering genom att anropa metoden minify(bool $minify).

Varför PHP-baserad minifiering? MJML 5 använder inte längre det gamla sårbara html-minifier-paketet. Detta paket behåller fortfarande minifiering i PHP för att bevara det utmatningsbeteende som introducerades i version 2.x. Om du behöver MJML 5:s inbyggda htmlnano/cssnano-minifieringsalternativ, öppna ett problem med den erforderliga alternativformen.

Valideringsnivå

Vårt paket kommer som standard att validera MJML med soft valideringsnivå. Du kan ändra detta genom att använda metoden validationLevel(ValidationLevel $validationLevel). Följande valideringsnivåer är tillgängliga:

Filväg

Vårt paket kommer som standard att använda .-katalogen. Du kan ändra detta genom att anropa metoden filePath(string $path).

MJML 5 behandlar filePath som basen för inkluderingssandlådan. Om inkluderingar är aktiverade nekas vägar utanför filePath om de inte uttryckligen tillåts med includePath(string|array|null $path).

Juice

Vi tillhandahåller inga juice-alternativ som standard. Du kan lägga till juice-alternativ genom att använda följande metoder:

Stödriktlinjer

Tack för att du valde vårt öppna källkodsprojekt! Vänligen ta ett ögonblick för att titta på dessa stödriktlinjer. De kommer att hjälpa dig att få ut det mesta av vårt projekt.

Gemenskapsdriven Stöd

Vårt öppna källkodsprojekt drivs av vår fantastiska gemenskap. Om du har frågor eller behöver hjälp, är StackOverflow och andra online-resurser dina bästa alternativ.

Buggar och Prioritering av Funktioner

Verkligheten av att hantera ett öppet källkodsprojekt betyder att vi inte kan ta itu med varje rapporterad bugg eller funktionsönskemål omedelbart. Vi prioriterar ärenden i följande ordning:

1. Buggar som Påverkar Våra Betalda Produkter

Buggar som påverkar våra betalda produkter kommer alltid att vara vår högsta prioritet. I vissa fall kan vi endast ta itu med buggar som påverkar oss direkt.

2. Gemenskaps Pull Begärningar

Om du har identifierat en bugg och har en lösning, vänligen skicka in en pull-begäran. Efter ärenden som påverkar våra produkter ger vi näst högsta prioritet till dessa gemenskapsdrivna lösningar. När de har granskats och godkänts, kommer vi att sammanfoga din lösning och kreditera ditt bidrag.

3. Ekonomiskt Stöd

För frågor utanför de nämnda kategorierna kan du välja att finansiera deras lösning. Varje öppen fråga är kopplad till ett beställningsformulär där du kan bidra ekonomiskt. Vi prioriterar dessa frågor baserat på det belopp som anges.

Gemenskapsbidrag

Öppen källkod blomstrar när dess gemenskap är aktiv. Även om du inte åtgärdar buggar, överväg att bidra genom kodförbättringar, dokumentationsuppdateringar, handledningar eller genom att hjälpa andra i gemenskapskanaler. Vi uppmuntrar starkt alla, som en gemenskap, att hjälpa till att stödja arbetet med öppen källkod.

För att upprepa, kommer DefectiveCode att prioritera buggar baserat på hur de påverkar våra betalda produkter, gemenskaps pull-begärningar, och det ekonomiska stöd som erhållits för problem.

Licens - MIT Licens

Copyright © Defective Code, LLC. Alla rättigheter förbehålles

Härmed beviljas tillstånd, kostnadsfritt, till varje person som erhåller en kopia av denna programvara och tillhörande dokumentationsfiler (”Programvaran”), att hantera Programvaran utan begränsningar, inklusive utan begränsning rätten att använda, kopiera, modifiera, sammanfoga, publicera, distribuera, underlicensiera och/eller sälja kopior av Programvaran, och att tillåta personer som Programvaran tillhandahålls till att göra det, med förbehåll för följande villkor:

Den ovanstående copyrightnotisen och denna tillståndsnotis ska inkluderas i alla kopior eller väsentliga delar av Programvaran.

PROGRAMVARAN TILLHANDAHÅLLS "I BEFINTLIGT SKICK", UTAN NÅGON SOM HELST GARANTI, VARE SIG UTTRYCKLIG ELLER UNDERFÖRSTÅDD, INKLUSIVE MEN INTE BEGRÄNSAT TILL GARANTIER FÖR SÄLJBARHET, LÄMPLIGHET FÖR ETT BESTÄMT ÄNDAMÅL OCH INTE KRÄNKNING. UNDER INGA OMSTÄNIGHETER SKA FÖRFATTARNA ELLER COPYRIGHTINNEHAVARNA ANSVARA FÖR NÅGON FORDRAN, SKADOR ELLER ANNAN ANSVARSSKYLDIGHET, VARE SIG I EN RÄTTSLIG ÅTGÄRD, SKADESTÅND ELLER ANNAT, SOM UPPSTÅR FRÅN, GENOM ELLER I SAMBAND MED PROGRAMVARAN ELLER ANVÄNDNINGEN ELLER ANDRA AFFÄRER I PROGRAMVARAN.