English | العربية | বাংলা | Bosanski | Deutsch | Español | Français | हिन्दी | Italiano | 日本語 | 한국어 | मराठी | Português | Русский | Kiswahili | தமிழ் | తెలుగు | Türkçe | اردو | Tiếng Việt | 中文
Ce document a été traduit automatiquement. S'il y a des erreurs de traduction, veuillez ouvrir une pull request sur le projet et ajouter le fichier traduit à docs/{Code ISO 639-1}.md
.
MJML est un langage de balisage spécialement conçu pour simplifier le processus de codage des emails réactifs. Sa syntaxe sémantique garantit facilité et simplicité, tandis que sa vaste bibliothèque de composants standard accélère le développement et réduit la complexité de votre code email. Le moteur open-source de MJML génère un HTML réactif de haute qualité qui respecte les meilleures pratiques. Si vous avez déjà connu les frustrations de travailler avec Outlook, ce package est fait pour vous.
Notre implémentation MJML sert de wrapper pour l'API officielle MJML. Elle permet une compilation pratique de MJML en HTML directement dans PHP, sans avoir besoin de NodeJS. Ce package est idéal pour les applications PHP qui souhaitent intégrer MJML sans les tracas de l'installation de NodeJS et de la CLI MJML.
// Sans Laravel(new MJML)->render( '<mjml><mj-body><mj-section><mj-column><mj-text>Hello World</mj-text></mj-column></mj-section></mj-body></mjml>'); // HTML minifié(new MJML)->minify()->render( '<mjml><mj-body><mj-section><mj-column><mj-text>Hello World</mj-text></mj-column></mj-section></mj-body></mjml>'); // Avec LaravelMJML::render( '<mjml><mj-body><mj-section><mj-column><mj-text>Hello World</mj-text></mj-column></mj-section></mj-body></mjml>'); // Avec Laravel et HTML minifiéMJML::minify()->render( '<mjml><mj-body><mj-section><mj-column><mj-text>Hello World</mj-text></mj-column></mj-section></mj-body></mjml>');
Tout d'abord, ajoutez ce qui suit à votre fichier composer.json
pour indiquer à notre package de télécharger les binaires corrects pour votre système d'exploitation lors de l'installation de notre package. Les binaires seront téléchargés après l'exécution de la commande install
, update
ou dump-autoload
.
{ "post-autoload-dump": ["DefectiveCode\\MJML\\PullBinary::all"]}
Le binaire MJML sera obtenu à partir de notre CDN et enregistré dans le dossier "bin" de ce package lors de l'installation ou de la mise à jour de Composer. Assurez-vous d'avoir les binaires nécessaires chargés à la fois dans votre environnement local et de production.
Par défaut, all
téléchargera tous les binaires que nous prenons en charge. Nous vous recommandons de limiter cela aux systèmes d'exploitation et d'architecture dont vous avez besoin afin de réduire la bande passante et les temps d'installation. Voici les binaires disponibles :
Système d'exploitation | Architecture | Commande Composer Post Update |
---|---|---|
Tous | Tous | 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 |
Ensuite, installez le package PHP en exécutant la commande composer suivante :
composer require defectivecode/mjml
C'est tout ! Si vous utilisez Laravel, notre package s'installera automatiquement grâce à la découverte des packages de Laravel.
Voir l'utilisation avec Laravel ci-dessous si vous utilisez Laravel.
Pour rendre MJML, il suffit de passer votre chaîne MJML à la méthode render
:
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>');
Pour valider MJML, il suffit de passer votre chaîne MJML à la méthode isValid
:
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>');
Pour rendre MJML, il suffit de passer votre chaîne MJML à la méthode render
de la façade MJML :
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>');
Pour valider MJML, il suffit de passer votre chaîne MJML à la méthode isValid
de la façade MJML :
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>');
Vous pouvez publier le fichier de configuration en utilisant la commande suivante :
php artisan vendor:publish --provider="DefectiveCode\MJML\MJMLServiceProvider"
Cela créera un fichier de configuration mjml.php
dans votre dossier config
. Toutes les options répertoriées dans le fichier de configuration sont transmises à l'objet config
lorsque vous utilisez la façade MJML.
Toutes les options de configuration peuvent être définies en appelant directement les méthodes suivantes sur l'objet 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>' );
Notre package suit la même configuration que le package MJML officiel, à l'exception des éléments suivants :
preprocessors
- Cette option n'est pas disponible. Veuillez ouvrir une demande d'extraction si vous souhaitez ajouter cette option.minifyOptions
- Nous utilisons html-minifier-terser
tandis que le package officiel utilise html-minifier
pour la minification. Nous avons décidé de changer de processeur car html-minifer
n'est plus maintenu et présente quelques problèmes de sécurité associés.Notre package utilise les polices suivantes par défaut :
Vous pouvez modifier les polices en utilisant les méthodes suivantes :
addFont(string $font, string $url)
- Ajoute une police à la liste des polices.removeFont(string$font)
- Supprime une police de la liste des polices.setFonts(array $fonts)
- Définit la liste des polices. Vous devez fournir un tableau de polices dans ce format : ['nom-de-la-police' => 'url-de-la-police']
.Les commentaires sont conservés par défaut. Si vous souhaitez supprimer les commentaires, vous pouvez utiliser la méthode removeComments()
.
Vous pouvez également annuler la méthode removeComments()
en appelant la méthode keepComments()
.
Par défaut, notre package inclura toutes les balises mj-include
. Vous pouvez ajuster ce comportement en appelant la méthode ignoreIncludes(bool $ignore)
.
Notre package embellira le HTML en utilisant js-beautify
avec les options par défaut suivantes :
Bien que
js-beautify
utilise snake_case pour fournir des options, vous devez utiliser camelCase lorsque vous utilisez notre package. Nous avons fait ce choix pour que notre package soit cohérent avec le reste des options de configuration. Notre package convertira automatiquement les options camelCase en snake_case.
Vous pouvez remplacer l'une de ces options en fournissant une configuration js-beautify
valide en utilisant les méthodes suivantes :
setBeautifyOptions(array $options)
- Définit les options js-beautify
.addBeautifyOption(string $option, mixed $value)
- Ajoute une option js-beautify
.removeBeautifyOption(string $option)
- Supprime une option js-beautify
.Notre package minifiera le HTML en utilisant html-minifier-terser
avec les options par défaut suivantes :
Vous pouvez remplacer l'une de ces options en fournissant une configuration valide de html-minifier-terser
en utilisant les méthodes suivantes :
setMinifyOptions(array $options)
- Définit les options html-minifier-terser
.addMinifyOption(string $option, mixed $value)
- Ajoute une option html-minifier-terser
.removeMinifyOption(string $option)
- Supprime une option html-minifier-terser
.Notre package validera le MJML en utilisant le niveau de validation soft
par défaut. Vous pouvez modifier cela en utilisant la méthode validationLevel(ValidationLevel $validationLevel)
. Les niveaux de validation suivants sont disponibles :
strict
- Votre document est en cours de validation et n'est pas rendu s'il contient des erreurs.soft
- Votre document est en cours de validation et est rendu, même s'il contient des erreurs.skip
- Votre document est rendu sans passer par la validation.Notre package utilisera le répertoire .
par défaut. Vous pouvez modifier cela en appelant la méthode filePath(string $path)
.
Nous ne fournissons aucune option juice par défaut. Vous pouvez ajouter des options juice en utilisant les méthodes suivantes :
setJuiceOptions(array $options)
- Définit les options juice.addJuiceOption(string $option, mixed $value)
- Ajoute une option juice.removeJuiceOption(string $option)
- Supprime une option juice.setJuicePreserveTags(array $tags)
- Définit les balises de préservation juice.addJuicePreserveTag(string $tag, mixed $value)
- Ajoute une balise de préservation juice.removeJuicePreserveTag(string $tag)
- Supprime une balise de préservation juice.Merci d'avoir choisi notre package open source ! Veuillez prendre un moment pour consulter ces lignes directrices de support. Elles vous aideront à tirer le meilleur parti de notre projet.
Notre projet open source est alimenté par notre communauté géniale. Si vous avez des questions ou besoin d'aide, StackOverflow et d'autres ressources en ligne sont vos meilleurs atouts.
La réalité de la gestion d'un projet open source signifie que nous ne pouvons pas traiter immédiatement chaque bogue signalé ou demande de fonctionnalité. Nous donnons la priorité aux problèmes dans l'ordre suivant :
Les bogues qui impactent nos produits payants seront toujours notre priorité absolue. Dans certains cas, nous ne traiterons que les bogues qui nous affectent directement.
Si vous avez identifié un bogue et avez une solution, veuillez soumettre une demande de tirage. Après les problèmes affectant nos produits, nous accordons la priorité suivante à ces corrections proposées par la communauté. Une fois examinée et approuvée, nous fusionnerons votre solution et créditerons votre contribution.
Pour les problèmes en dehors des catégories mentionnées, vous pouvez choisir de financer leur résolution. Chaque problème ouvert est lié à un formulaire de commande où vous pouvez contribuer financièrement. Nous donnons la priorité à ces problèmes en fonction du montant de financement fourni.
L'open source prospère lorsque sa communauté est active. Même si vous ne corrigez pas de bogues, envisagez de contribuer par des améliorations de code, des mises à jour de documentation, des tutoriels ou en aidant les autres dans les canaux communautaires. Nous encourageons vivement tout le monde, en tant que communauté, à soutenir le travail open source.
Pour réitérer, DefectiveCode donnera la priorité aux bogues en fonction de leur impact sur nos produits payants, des demandes de tirage de la communauté et du soutien financier reçu pour les problèmes.
Droit d'auteur © Defective Code, LLC. Tous droits réservés
La permission est accordée, gratuitement, à toute personne obtenant une copie de ce logiciel et des fichiers de documentation associés (le "Logiciel"), de traiter le Logiciel sans restriction, y compris, sans limitation, les droits d'utiliser, de copier, de modifier, de fusionner, de publier, de distribuer, de concéder sous licence et/ou de vendre des copies du Logiciel, et de permettre aux personnes auxquelles le Logiciel est fourni de le faire, sous réserve des conditions suivantes :
L'avis de droit d'auteur ci-dessus et cet avis d'autorisation doivent être inclus dans toutes les copies ou parties substantielles du Logiciel.
LE LOGICIEL EST FOURNI "TEL QUEL", SANS GARANTIE D'AUCUNE SORTE, EXPRESSE OU IMPLICITE, Y COMPRIS, MAIS SANS S'Y LIMITER, LES GARANTIES DE QUALITÉ MARCHANDE, D'ADÉQUATION À UN USAGE PARTICULIER ET D'ABSENCE DE CONTREFAÇON. EN AUCUN CAS, LES AUTEURS OU LES TITULAIRES DE DROITS D'AUTEUR NE SERONT RESPONSABLES DE TOUTE RÉCLAMATION, DOMMAGE OU AUTRE RESPONSABILITÉ, QUE CE SOIT DANS LE CADRE D'UN CONTRAT, D'UN DÉLIT OU AUTRE, EN LIEN AVEC LE LOGICIEL OU SON UTILISATION OU AUTREMENT.