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

الترقية

إذا كنت تقوم بالترقية من إصدار سابق، يرجى الاطلاع على دليل الترقية لمعرفة التغييرات المهمة وخطوات الانتقال.

المقدمة

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

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

مثال

// بدون 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 من شبكة توزيع المحتوى الخاصة بنا وحفظه في مجلد "bin" لهذه الحزمة أثناء تثبيت composer أو تحديثه. تأكد من تحميل الثنائيات اللازمة لكل من البيئة المحلية والبيئة الإنتاجية.

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

    نظام التشغيل المعمارية أمر ما بعد تحديث Composer
    جميع جميع DefectiveCode\MJML\PullBinary::all
    داروين (MacOS) arm64 DefectiveCode\MJML\PullBinary::darwin-arm64
    داروين (MacOS) x64 DefectiveCode\MJML\PullBinary::darwin-x64
    لينوكس (glibc) arm64 DefectiveCode\MJML\PullBinary::linux-arm64
    لينوكس (glibc) x64 DefectiveCode\MJML\PullBinary::linux-x64
    لينوكس (musl) arm64 DefectiveCode\MJML\PullBinary::linux-arm64-musl
    لينوكس (musl) x64 DefectiveCode\MJML\PullBinary::linux-x64-musl
  2. بعد ذلك، ثبّت حزمة PHP عن طريق تشغيل الأمر composer التالي:

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

الاستخدام (بدون Laravel)

راجع الاستخدام مع 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>'
);

الاستخدام (مع Laravel)

عرض MJML

لعرض MJML، ما عليك سوى تمرير سلسلة MJML الخاصة بك إلى render في واجهة 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. هذا يتوافق مع افتراضية MJML 5 الأكثر أمانًا. يمكنك تمكين الإدراجات عن طريق استدعاء ignoreIncludes(false).

عند تمكين الإدراجات، استخدم filePath(string $path) كدليل أساسي و includePath(string|array|null $path) للسماح بدلائل إدراج إضافية.

تحسين

ستقوم حزمةنا بتحسين HTML باستخدام js-beautify. تستخدم MJML 5.2 أيضًا js-beautify داخليًا، ولكن هذه الحزمة تحتفظ بالتحسين على مستوى الغلاف بحيث تظل خيارات beautifyOptions الـ PHP المخصصة تعمل. خيارات الافتراضية هي:

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

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

تصغير

ستقوم حزمةنا بتصغير مخرجات HTML عند تمكينها. يقوم التصغير بما يلي:

يمكنك تمكين أو تعطيل التصغير عن طريق استدعاء طريقة minify(bool $minify).

لماذا التصغير القائم على PHP؟ لم تعد MJML 5 تستخدم حزمة html-minifier القديمة المعرضة للخطر. لا تزال هذه الحزمة تحتفظ بالتصغير في PHP للحفاظ على سلوك الناتج الذي تم تقديمه في الإصدار 2.x. إذا كنت بحاجة إلى خيارات تصغير htmlnano/cssnano الأصلية لـ MJML 5، افتح مشكلة مع شكل الخيار المطلوب.

مستوى التحقق

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

مسار الملف

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

تتعامل MJML 5 مع filePath كأساس رمل الإدراج. إذا كانت الإدراجات ممكّنة، يتم رفض المسارات الخارجية لـ filePath ما لم تكن مسموحة صراحةً بـ includePath(string|array|null $path).

Juice

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

إرشادات الدعم

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

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

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

الأخطاء، وأولوية الميزات

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

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

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

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

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

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

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

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

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

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

الترخيص - MIT License

حقوق الطبع والنشر © Defective Code, LLC. جميع الحقوق محفوظة

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

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

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