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

تحذير الترجمة

تم ترجمة هذا المستند تلقائيًا. إذا كانت هناك أخطاء في الترجمة، يرجى فتح طلب سحب على المشروع وإضافة الملف المترجم إلى docs/{رمز ISO 639-1}.md.

المقدمة

MJML هو لغة ترميز تم تصميمها خصيصًا لتبسيط عملية ترميز رسائل البريد الإلكتروني المستجيبة. بناءً على بناء الجملة الدلالية الخاصة به ، يضمن بساطة وسهولة الاستخدام ، بينما تسرع مكتبة المكونات القياسية الواسعة من تطوير وتقلل من تعقيد قاعدة بيانات البريد الإلكتروني الخاصة بك. محرك MJML مفتوح المصدر يولد HTML مستجيبًا عالي الجودة يلتزم بأفضل الممارسات. إذا كنت قد واجهت تحديات العمل مع Outlook ، فإن هذه الحزمة مصممة خصيصًا لك.

تعمل تنفيذتنا لـ MJML كغلاف لـ MJML API الرسمي. يتيح تجميع MJML بسهولة إلى HTML مباشرة داخل PHP ، دون الحاجة إلى NodeJS. هذه الحزمة مثالية لتطبيقات PHP التي ترغب في دمج MJML دون عناء تثبيت NodeJS و MJML CLI.

مثال

// بدون 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 المصغر
(new MJML)->minify()->render(
'<mjml><mj-body><mj-section><mj-column><mj-text>Hello World</mj-text></mj-column></mj-section></mj-body></mjml>'
);
 
// مع Laravel
MJML::render(
'<mjml><mj-body><mj-section><mj-column><mj-text>Hello World</mj-text></mj-column></mj-section></mj-body></mjml>'
);
 
// مع Laravel و HTML المصغر
MJML::minify()->render(
'<mjml><mj-body><mj-section><mj-column><mj-text>Hello World</mj-text></mj-column></mj-section></mj-body></mjml>'
);

التثبيت

  1. أضف أولاً ما يلي إلى ملف composer.json الخاص بك لإرشاد حزمتنا لسحب الثنائيات الصحيحة لنظام التشغيل الخاص بك عند تثبيت حزمتنا. ستقوم الثنائيات بالتنزيل بعد تشغيل الأمر install أو update أو dump-autoload.

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

    سيتم الحصول على الثنائي الخاص بـ MJML من خادم CDN الخاص بنا وسيتم حفظه في مجلد "bin" لهذه الحزمة أثناء تثبيت أو تحديث composer. تأكد من تحميل الثنائيات اللازمة لكل من بيئتك المحلية والإنتاجية.

    بشكل افتراضي ، ستقوم القيمة all بسحب جميع الثنائيات التي ندعمها. نوصي بتحديد نطاق هذا الأمر لأنظمة التشغيل والهندسة المعمارية التي تحتاجها لتوفير النطاق الترددي وأوقات التثبيت. فيما يلي الثنائيات المتاحة.

    نظام التشغيل الهندسة المعمارية أمر تحديث ما بعد Composer
    الكل الكل 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. بعد ذلك ، قم بتثبيت حزمة PHP عن طريق تشغيل الأمر composer التالي:

    composer require defectivecode/mjml
  3. هذا كل شيء! إذا كنت تستخدم Laravel ، فسيتم تثبيت حزمتنا تلقائيًا باستخدام اكتشاف الحزم في Laravel.

الاستخدام (بدون لارافيل)

انظر إلى الاستخدام مع لارافيل أدناه إذا كنت تستخدم لارافيل.

تقديم MJML

لتقديم MJML ، ما عليك سوى تمرير سلسلة MJML الخاصة بك إلى طريقة 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>'
);

التحقق من صحة MJML

للتحقق من صحة MJML ، ما عليك سوى تمرير سلسلة MJML الخاصة بك إلى طريقة 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>'
);

الاستخدام (مع لارافيل)

تقديم MJML

لتقديم MJML ، ما عليك سوى تمرير سلسلة MJML الخاصة بك إلى الواجهة الأمامية 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>'
);

التحقق من صحة MJML

للتحقق من صحة MJML ، ما عليك سوى تمرير سلسلة MJML الخاصة بك إلى طريقة isValid على الواجهة الأمامية 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>'
);

التكوين

يمكنك نشر ملف التكوين باستخدام الأمر التالي:

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

سيتم إنشاء ملف تكوين mjml.php في مجلد config الخاص بك. يتم تمرير جميع الخيارات المدرجة في ملف التكوين إلى كائن config عند استخدام واجهة الأمام MJML.

التكوين

يمكن تعيين جميع خيارات التكوين عن طريق استدعاء الأساليب التالية مباشرةً على كائن 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>'
);

يتبع حزمتنا نفس التكوين كحزمة MJML الرسمية باستثناء ما يلي:

الخطوط

تستخدم حزمتنا الخطوط التالية افتراضيًا:

يمكنك تغيير الخطوط باستخدام الأساليب التالية:

التعليقات

تُحتفظ بالتعليقات افتراضيًا. إذا كنت ترغب في إزالة التعليقات ، فيمكنك استخدام طريقة removeComments().

يمكنك أيضًا التراجع عن removeComments() عن طريق استدعاء طريقة keepComments().

تجاهل الشمول

بشكل افتراضي ، ستقوم حزمتنا بتضمين أي علامات mj-include. يمكنك ضبط هذا السلوك عن طريق استدعاء طريقة ignoreIncludes(bool $ignore).

تجميل

ستقوم حزمتنا بتجميل HTML باستخدام js-beautify باستخدام الخيارات الافتراضية التالية:

بينما يستخدم js-beautify snake_case لتوفير الخيارات ، يجب استخدام camelCase عند استخدام حزمتنا. اتخذنا هذا الاختيار للحفاظ على توافق حزمتنا مع بقية خيارات التكوين. ستقوم حزمتنا تلقائيًا بتحويل خيارات camelCase إلى snake_case.

يمكنك تجاوز أي من هذه الخيارات عن طريق توفير تكوين صالح لـ js-beautify باستخدام الأساليب التالية:

تصغير

ستقوم حزمتنا بتصغير HTML باستخدام html-minifier-terser باستخدام الخيارات الافتراضية التالية:

يمكنك تجاوز أي من هذه الخيارات عن طريق توفير تكوين صالح لـ html-minifier-terser باستخدام الأساليب التالية:

مستوى التحقق

ستقوم حزمتنا بالتحقق من MJML باستخدام مستوى التحقق soft افتراضيًا. يمكنك تغيير ذلك باستخدام طريقة validationLevel(ValidationLevel $validationLevel). يتوفر المستويات التالية للتحقق:

مسار الملف

ستستخدم حزمتنا المسار . افتراضيًا. يمكنك تغيير ذلك عن طريق استدعاء طريقة filePath(string $path).

Juice

لا نقدم أي خيارات juice افتراضيًا. يمكنك إضافة خيارات juice باستخدام الأساليب التالية:

دليل الدعم

شكرًا لاختيارك لحزمتنا مفتوحة المصدر! يرجى أن تأخذ لحظة للاطلاع على هذه الإرشادات للدعم. ستساعدك في الاستفادة القصوى من مشروعنا.

الدعم المدعوم من المجتمع

مشروعنا مفتوح المصدر يعتمد على مجتمعنا الرائع. إذا كان لديك أي أسئلة أو تحتاج إلى مساعدة، فإن StackOverflow وغيرها من المصادر عبر الإنترنت هي أفضل خياراتك.

الأخطاء وتحديد أولويات الميزات

حقيقة إدارة مشروع مفتوح المصدر تعني أننا لا يمكننا التعامل مع كل خطأ مبلغ عنه أو طلب ميزة على الفور. نحدد أولوية المشاكل بالترتيب التالي:

1. الأخطاء التي تؤثر على منتجاتنا المدفوعة

سيكون الأخطاء التي تؤثر على منتجاتنا المدفوعة دائمًا أولويتنا العليا. في بعض الحالات، قد نتعامل فقط مع الأخطاء التي تؤثر علينا مباشرة.

2. طلبات السحب من المجتمع

إذا كنت قد حددت خطأ ولديك حلاً، يرجى تقديم طلب سحب. بعد المشاكل التي تؤثر على منتجاتنا، نعطي الأولوية الأعلى لهذه الإصلاحات التي يقودها المجتمع. بمجرد مراجعتها والموافقة عليها، سندمج حلك وننسب مساهمتك.

3. الدعم المالي

بالنسبة للمشاكل خارج الفئات المذكورة، يمكنك اختيار تمويل حلها. يتم ربط كل مشكلة مفتوحة بنموذج طلب حيث يمكنك المساهمة ماليًا. نحدد أولوية هذه المشاكل بناءً على المبلغ المالي المقدم.

مساهمات المجتمع

يزدهر المصدر المفتوح عندما يكون مجتمعه نشطًا. حتى إذا لم تكن تقوم بإصلاح الأخطاء، فكر في المساهمة من خلال تحسينات الشفرة، وتحديثات الوثائق، والبرامج التعليمية، أو بمساعدة الآخرين في قنوات المجتمع. نشجع بشدة الجميع، كمجتمع، على مساعدة دعم العمل المفتوح المصدر.

لتكرار الفكرة، ستعطي DefectiveCode الأولوية للأخطاء بناءً على كيفية تأثيرها على منتجاتنا المدفوعة، طلبات السحب من المجتمع، والدعم المالي المتلقى للمشاكل.

ترخيص - ترخيص MIT

حقوق النشر © Defective Code، شركة ذات مسؤولية محدودة. جميع الحقوق محفوظة.

يتم منح إذن هنا، مجانًا، لأي شخص يحصل على نسخة من هذا البرنامج وملفات الوثائق المرتبطة به (البرنامج)، للتعامل في البرنامج دون أي قيود، بما في ذلك دون حصر الحقوق في استخدام ونسخ وتعديل ودمج ونشر وتوزيع ومنح ترخيص للأشخاص الذين يتم تزويدهم بالبرنامج للقيام بذلك، على أن تكون مشروطة بالشروط التالية:

يجب تضمين إشعار حقوق النشر أعلاه وإشعار الإذن هذا في جميع النسخ أو الأجزاء الكبيرة من البرنامج.

يتم توفير البرنامج "كما هو"، بدون أي ضمان، صريحًا أو ضمنيًا، بما في ذلك ولكن لا يقتصر على الضمانات التجارية واللياقة لغرض معين وعدم الانتهاك. في أي حالة، لا يتحمل المؤلفون أو حاملو حقوق النشر أي مسؤولية عن أي مطالبة أو أضرار أو مسؤولية أخرى، سواء في إطار عقد أو تورط أو غير ذلك، ناشئة عن أو في اتصال بالبرنامج أو استخدامه أو غير ذلك.

MJML - Defective Code