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

Avviso di traduzione

Questo documento è stato tradotto automaticamente. Se ci sono errori di traduzione, per favore apri una pull request sul progetto e aggiungi il file tradotto a docs/{Codice ISO 639-1}.md.

Introduzione

MJML è un linguaggio di markup appositamente progettato per semplificare il processo di codifica di email responsive. La sua sintassi semantica garantisce facilità e semplicità, mentre la sua estesa libreria di componenti standard accelera lo sviluppo e riduce la complessità del codice delle tue email. Il motore open-source di MJML genera HTML responsive di alta qualità che aderisce alle migliori pratiche. Se hai avuto frustrazioni nel lavorare con Outlook, questo pacchetto è fatto su misura per te.

La nostra implementazione di MJML funge da wrapper per l'API ufficiale di MJML. Consente la comoda compilazione di MJML in HTML direttamente in PHP, senza la necessità di NodeJS. Questo pacchetto è ideale per le applicazioni PHP che desiderano incorporare MJML senza il fastidio di installare NodeJS e la CLI di MJML.

Esempio

// Senza Laravel
(new MJML)->render(
'<mjml><mj-body><mj-section><mj-column><mj-text>Ciao Mondo</mj-text></mj-column></mj-section></mj-body></mjml>'
);
 
// HTML minificato
(new MJML)->minify()->render(
'<mjml><mj-body><mj-section><mj-column><mj-text>Ciao Mondo</mj-text></mj-column></mj-section></mj-body></mjml>'
);
 
// Con Laravel
MJML::render(
'<mjml><mj-body><mj-section><mj-column><mj-text>Ciao Mondo</mj-text></mj-column></mj-section></mj-body></mjml>'
);
 
// Con Laravel e HTML minificato
MJML::minify()->render(
'<mjml><mj-body><mj-section><mj-column><mj-text>Ciao Mondo</mj-text></mj-column></mj-section></mj-body></mjml>'
);

Installazione

  1. Aggiungi prima quanto segue al tuo file composer.json per istruire il nostro pacchetto a scaricare i binari corretti per il tuo sistema operativo quando il nostro pacchetto viene installato. I binari verranno scaricati dopo aver eseguito install, update o dump-autoload.

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

    Il binario MJML verrà ottenuto dal nostro CDN e salvato nella cartella "bin" di questo pacchetto durante l'installazione o l'aggiornamento di composer. Assicurati di avere i binari necessari caricati sia per il tuo ambiente locale che per quello di produzione.

    Per impostazione predefinita, all scaricherà tutti i binari che supportiamo. Consigliamo di limitare questo all'operating system e all'architettura di cui hai bisogno per risparmiare larghezza di banda e tempi di installazione. Di seguito sono elencati i binari disponibili.

    Sistema Operativo Architettura Comando Composer Post Update
    Tutti Tutti 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. Successivamente, installa il pacchetto PHP eseguendo il seguente comando composer:

    composer require defectivecode/mjml
  3. Ecco fatto! Se stai usando Laravel, il nostro pacchetto verrà installato automaticamente utilizzando la scoperta dei pacchetti di Laravel.

Utilizzo (senza Laravel)

Vedi l'utilizzo con Laravel di seguito se stai usando Laravel.

Rendering MJML

Per renderizzare MJML, passa semplicemente la tua stringa MJML al metodo render:

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

Validazione MJML

Per validare MJML, passa semplicemente la tua stringa MJML al metodo isValid:

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

Utilizzo (con Laravel)

Rendering MJML

Per rendere MJML, basta passare la stringa MJML al metodo render sulla facciata MJML:

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

Validazione MJML

Per validare MJML, basta passare la stringa MJML al metodo isValid sulla facciata MJML:

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

Configurazione

È possibile pubblicare il file di configurazione utilizzando il seguente comando:

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

Questo creerà un file di configurazione mjml.php nella cartella config. Tutte le opzioni elencate nel file di configurazione vengono passate all'oggetto config quando si utilizza la facciata MJML.

Configurazione

Tutte le opzioni di configurazione possono essere impostate chiamando direttamente i seguenti metodi sull'oggetto MJML.

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>'
);

Il nostro pacchetto segue la stessa configurazione del pacchetto ufficiale MJML, ad eccezione di quanto segue:

Caratteri

Il nostro pacchetto utilizza i seguenti caratteri predefiniti:

È possibile modificare i caratteri utilizzando i seguenti metodi:

Commenti

I commenti vengono mantenuti per impostazione predefinita. Se si desidera rimuovere i commenti, è possibile utilizzare il metodo removeComments().

È anche possibile annullare la chiamata a removeComments() chiamando il metodo keepComments().

Ignora gli Include

Per impostazione predefinita, il nostro pacchetto includerà qualsiasi tag mj-include. È possibile regolare questo comportamento chiamando il metodo ignoreIncludes(bool $ignore).

Beautify

Il nostro pacchetto formatta l'HTML utilizzando js-beautify con le seguenti opzioni predefinite:

Mentre js-beautify utilizza snake_case per fornire le opzioni, è necessario utilizzare camelCase quando si utilizza il nostro pacchetto. Abbiamo fatto questa scelta per mantenere il nostro pacchetto coerente con il resto delle opzioni di configurazione. Il nostro pacchetto convertirà automaticamente le opzioni camelCase in snake_case.

È possibile sovrascrivere una qualsiasi di queste opzioni fornendo una configurazione js-beautify valida utilizzando i seguenti metodi:

Minify

Il nostro pacchetto ridurrà al minimo l'HTML utilizzando html-minifier-terser con le seguenti opzioni predefinite:

È possibile sovrascrivere una qualsiasi di queste opzioni fornendo una configurazione valida di html-minifier-terser utilizzando i seguenti metodi:

Livello di validazione

Il nostro pacchetto convalida l'MJML utilizzando il livello di convalida soft per impostazione predefinita. È possibile modificare ciò utilizzando il metodo validationLevel(ValidationLevel $validationLevel). Sono disponibili i seguenti livelli di convalida:

Percorso del file

Il nostro pacchetto utilizzerà la directory . per impostazione predefinita. È possibile modificare ciò chiamando il metodo filePath(string $path).

Juice

Non forniamo alcuna opzione juice per impostazione predefinita. È possibile aggiungere opzioni di juice utilizzando i seguenti metodi:

Linee guida di supporto

Grazie per aver scelto il nostro pacchetto open source! Ti preghiamo di dedicare un momento per leggere queste linee guida di supporto. Ti aiuteranno a ottenere il massimo dal nostro progetto.

Supporto basato sulla comunità

Il nostro progetto open source è alimentato dalla nostra fantastica comunità. Se hai domande o hai bisogno di assistenza, StackOverflow e altre risorse online sono le tue migliori opzioni.

Segnalazione di bug e prioritizzazione delle funzionalità

La realtà della gestione di un progetto open source significa che non possiamo affrontare immediatamente ogni segnalazione di bug o richiesta di funzionalità. Priorizziamo i problemi nel seguente ordine:

1. Bug che influiscono sui nostri prodotti a pagamento

I bug che influiscono sui nostri prodotti a pagamento saranno sempre la nostra massima priorità. In alcuni casi, potremmo affrontare solo i bug che ci riguardano direttamente.

2. Richieste di pull dalla comunità

Se hai individuato un bug e hai una soluzione, ti preghiamo di inviare una richiesta di pull. Dopo i problemi che influiscono sui nostri prodotti, diamo la priorità successiva a queste correzioni basate sulla comunità. Una volta esaminata e approvata, uniremo la tua soluzione e accrediteremo il tuo contributo.

3. Supporto finanziario

Per i problemi al di fuori delle categorie menzionate, puoi scegliere di finanziare la loro risoluzione. Ogni problema aperto è collegato a un modulo d'ordine in cui puoi contribuire finanziariamente. Priorizziamo questi problemi in base all'importo del finanziamento fornito.

Contributi della comunità

L'open source prospera quando la sua comunità è attiva. Anche se non stai risolvendo bug, considera di contribuire attraverso miglioramenti del codice, aggiornamenti della documentazione, tutorial o assistendo gli altri nei canali della comunità. Incoraggiamo vivamente tutti, come comunità, ad aiutare il lavoro open source.

Per ribadire, DefectiveCode darà priorità ai bug in base a come influiscono sui nostri prodotti a pagamento, alle richieste di pull della comunità e al supporto finanziario ricevuto per i problemi.

Licenza - Licenza MIT

Copyright © Defective Code, LLC. Tutti i diritti riservati

È qui concesso, gratuitamente, a chiunque ottenga una copia di questo software e dei relativi file di documentazione (il "Software"), di trattare il Software senza restrizioni, compresi, senza limitazione, i diritti di utilizzare, copiare, modificare, unire, pubblicare, distribuire, concedere in sublicenza e/o vendere copie del Software, e di consentire alle persone a cui il Software è fornito di farlo, a condizione che siano rispettate le seguenti condizioni:

Il presente avviso di copyright e il presente avviso di autorizzazione devono essere inclusi in tutte le copie o parti sostanziali del Software.

IL SOFTWARE VIENE FORNITO "COSÌ COM'È", SENZA GARANZIA DI ALCUN TIPO, ESPRESSA O IMPLICITA, INCLUSO, MA NON LIMITATO A, GARANZIE DI COMMERCIABILITÀ, IDONEITÀ PER UN PARTICOLARE SCOPO E NON VIOLAZIONE. IN NESSUN CASO GLI AUTORI O I TITOLARI DEL COPYRIGHT SARANNO RESPONSABILI PER ALCUN RECLAMO, DANNO O ALTRO TIPO DI RESPONSABILITÀ, SIA IN UN'AZIONE DI CONTRATTO, TORTO O ALTRO, DERIVANTE DA, CONNESSO A O IN CONNESSIONE CON IL SOFTWARE O L'USO O ALTRO UTILIZZO DEL SOFTWARE.

MJML - Defective Code