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

# Avertissement de Traduction

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.

Introduction

MJML est un langage de balisage spécialement conçu pour simplifier le processus de codage des emails réactifs. Sa syntaxe sémantique assure 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 base de code d'email. Le moteur open-source de MJML génère un HTML de haute qualité et réactif qui adhère aux meilleures pratiques. Si vous avez déjà rencontré des frustrations en travaillant avec Outlook, ce package est fait pour vous.

Notre implémentation de MJML sert de wrapper pour l'API officielle de 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 incorporer MJML sans les tracas d'installation de NodeJS et du CLI MJML.

Exemple

// 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 Laravel
MJML::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>'
);

Installation

  1. Ajoutez d'abord ce qui suit à votre fichier composer.json pour indiquer à notre package de récupérer 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 avoir exécuté 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 pour vos environnements local et de production.

    Par défaut, all récupérera tous les binaires que nous supportons. Nous recommandons de limiter cela aux systèmes d'exploitation et d'architecture dont vous avez besoin pour économiser de la bande passante et du temps d'installation. Les binaires disponibles sont les suivants.

    Système d'exploitation Architecture Commande Post Update Composer
    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
  2. Ensuite, installez le package PHP en exécutant la commande composer suivante :

    composer require defectivecode/mjml
  3. C'est tout ! Si vous utilisez Laravel, notre package s'installera automatiquement en utilisant la découverte de package de Laravel.

Utilisation (Sans Laravel)

Voir l'utilisation avec Laravel ci-dessous si vous utilisez Laravel.

Rendu de MJML

Pour rendre MJML, passez simplement 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>'
);

Validation de MJML

Pour valider MJML, passez simplement 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>'
);
# Utilisation (Avec Laravel)
 
## Rendu MJML
 
Pour rendre MJML, passez simplement votre chaîne MJML à la méthode `render` sur la façade MJML :
 
```php
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>'
);

Validation MJML

Pour valider MJML, passez simplement votre chaîne MJML à la méthode isValid sur 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>'
);

Configuration

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 listées dans le fichier de configuration sont passées à l'objet config lorsque vous utilisez la façade MJML.

# Configuration
 
Toutes les options de configuration peuvent être définies en appelant directement les méthodes suivantes sur l'objet MJML.
 
```php
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 officiel MJML à l'exception des points suivants :

Polices

Notre package utilise les polices suivantes par défaut :

Vous pouvez changer les polices en utilisant les méthodes suivantes :

Commentaires

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().

Ignorer les inclusions

Par défaut, notre package inclura toutes les balises mj-include. Vous pouvez ajuster ce comportement en appelant la méthode ignoreIncludes(bool $ignore).

Embellissement

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 garder notre package 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 valide js-beautify en utilisant les méthodes suivantes :

Minification

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 html-minifier-terser en utilisant les méthodes suivantes :

Niveau de validation

Notre package validera le MJML en utilisant le niveau de validation soft par défaut. Vous pouvez changer cela en utilisant la méthode validationLevel(ValidationLevel $validationLevel). Les niveaux de validation suivants sont disponibles :

Chemin du fichier

Notre package utilisera le répertoire . par défaut. Vous pouvez changer cela en appelant la méthode filePath(string $path).

Juice

Nous ne fournissons aucune option juice par défaut. Vous pouvez ajouter des options juice en utilisant les méthodes suivantes :

# Directives de Support
 
Merci d'avoir choisi notre package open source ! Prenez un moment pour consulter ces directives de support. Elles vous aideront à tirer le meilleur parti de notre projet.
 
## Support Communautaire
 
Notre projet open source est alimenté par notre incroyable communauté. Si vous avez des questions ou besoin d'assistance, StackOverflow et d'autres ressources en ligne sont vos meilleures options.
 
## Bugs et Priorisation des Fonctionnalités
 
La réalité de la gestion d'un projet open source signifie que nous ne pouvons pas traiter immédiatement chaque bug signalé ou demande de fonctionnalité. Nous priorisons les problèmes dans l'ordre suivant :
 
### 1. Bugs Affectant Nos Produits Payants
 
Les bugs qui impactent nos produits payants seront toujours notre priorité absolue. Dans certains cas, nous ne traiterons que les bugs qui nous affectent directement.
 
### 2. Pull Requests de la Communauté
 
Si vous avez identifié un bug et avez une solution, veuillez soumettre une pull request. Après les problèmes affectant nos produits, nous donnons la priorité suivante à ces correctifs communautaires. Une fois examinée et approuvée, nous fusionnerons votre solution et créditerons votre contribution.
 
### 3. Support Financier
 
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 priorisons ces problèmes en fonction du montant de financement fourni.
 
### Contributions Communautaires
 
L'open source prospère lorsque sa communauté est active. Même si vous ne corrigez pas de bugs, 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 fortement tout le monde, en tant que communauté, à aider à soutenir le travail open source.
 
_Pour réitérer, DefectiveCode priorisera les bugs en fonction de leur impact sur nos produits payants, des pull requests de la communauté, et du support financier reçu pour les problèmes._

Licence - Licence MIT

Copyright © Defective Code, LLC. Tous droits réservés

La permission est par la présente accordée, gratuitement, à toute personne obtenant une copie de ce logiciel et des fichiers de documentation associés (le "Logiciel"), d'utiliser le Logiciel sans restriction, y compris sans limitation les droits d'utiliser, copier, modifier, fusionner, publier, distribuer, sous-licencier et/ou vendre des copies du Logiciel, et de permettre aux personnes à qui le Logiciel est fourni de le faire, sous réserve des conditions suivantes :

L'avis de droit d'auteur ci-dessus et cette permission doivent être inclus dans toutes les copies ou portions substantielles du Logiciel.

LE LOGICIEL EST FOURNI "EN L'ÉTAT", 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 DE NON-VIOLATION. EN AUCUN CAS LES AUTEURS OU LES TITULAIRES DU DROIT 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 AUTREMENT, DÉCOULANT DE, HORS OU EN RELATION AVEC LE LOGICIEL OU L'UTILISATION OU D'AUTRES TRAITEMENTS DANS LE LOGICIEL.

MJML - Defective Code