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 تیار کرتا ہے جو بہترین طریقوں کی پیروی کرتا ہے۔ اگر آپ نے آؤٹ لک کے ساتھ کام کرنے کی مایوسیوں کا سامنا کیا ہے، تو یہ پیکیج آپ کے لیے بنایا گیا ہے۔

ہماری MJML کی عمل داری سرکاری MJML API کے لیے ایک لپیٹ کے طور پر کام کرتی ہے۔ یہ PHP کے اندر براہ راست MJML کو HTML میں آسانی سے مرتب کرنے کے قابل بناتی ہے، NodeJS کی ضرورت کے بغیر۔ یہ پیکیج PHP ایپلی کیشنز کے لیے مثالی ہے جو بغیر NodeJS اور MJML CLI کو انسٹال کیے MJML کو شامل کرنا چاہتی ہیں۔

مثال

// بغیر لاراول
(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>'
);
 
// لاراول کے ساتھ
MJML::render(
'<mjml><mj-body><mj-section><mj-column><mj-text>Hello World</mj-text></mj-column></mj-section></mj-body></mjml>'
);
 
// لاراول کے ساتھ اور منیفائی کردہ 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" فولڈر میں محفوظ کی جائے گی جب کمپوزر کی تنصیب یا اپ ڈیٹ ہو۔ اس بات کو یقینی بنائیں کہ آپ کے مقامی اور پروڈکشن ماحول کے لیے درکار بائنریز لوڈ ہوں۔

    ڈیفالٹ کے طور پر، all تمام بائنریز نکالے گا جن کی ہم حمایت کرتے ہیں۔ ہم تجویز کرتے ہیں کہ اس کو آپریٹنگ اور آرکیٹیکچر سسٹمز کے مطابق سکپ کیا جائے جن کی آپ کو بینڈوڈتھ اور انسٹالیشن کے وقت کی بچت کرنے کی ضرورت ہے۔ دستیاب بائنریز درج ذیل ہیں۔

    آپریٹنگ سسٹم آرکیٹیکچر کمپوزر پوسٹ اپ ڈیٹ کمانڈ
    تمام تمام DefectiveCode\MJML\PullBinary::all
    ڈارون (میکOS) arm64 DefectiveCode\MJML\PullBinary::darwin-arm64
    ڈارون (میکOS) 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 require defectivecode/mjml
  3. بس! اگر لاراول کا استعمال کر رہے ہیں تو ہمارا پیکیج خود بخود لاراول کے پیکیج کی دریافت کے ذریعے انسٹال ہوگا۔

استعمال (بغیر لاراول)

اگر آپ لاراول کا استعمال کر رہے ہیں تو نیچے لاراول کے ساتھ استعمال دیکھیں۔

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 فیسڈ میں 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"

اس سے آپ کے config فولڈر میں ایک mjml.php کنفیگریشن فائل بن جائے گی۔ کنفیگریشن فائل میں درج تمام آپشنز MJML فیسڈ کو استعمال کرتے وقت config آبجیکٹ میں بھیجی جاتی ہیں۔

کنفیگریشن

تمام کنفیگریشن آپشنز کو 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 کا استعمال کرتا ہے، لیکن یہ پیکیج لیپت کی سطح کی خوبصورتی کو برقرار رکھتا ہے تاکہ حسب ضرورت PHP beautifyOptions کے کام کرتے رہیں۔ ڈیفالٹ آپشنز یہ ہیں:

جبکہ js-beautify آپشنز فراہم کرنے کے لیے snake_case کا استعمال کرتا ہے، آپ کو ہمارے پیکیج کا استعمال کرتے وقت camelCase کا استعمال کرنا چاہیے۔ ہم نے اس انتخاب کا انتخاب اس لیے کیا ہے تاکہ ہمارے پیکیج کو کنفیگریشن کے باقی آپشنز کے ساتھ مستقل رکھا جا سکے۔ ہمارا پیکیج خود بخود camelCase آپشنز کو snake_case میں تبدیل کر دے گا۔

آپ مندرجہ ذیل طریقوں کا استعمال کرتے ہوئے ان میں سے کسی بھی آپشن کو اووررائڈ کر سکتے ہیں:

منیفائی

ہمارا پیکیج HTML آؤٹ پٹ کو منیفائی کرے گا جب یہ فعال ہو۔ منیفیکیشن مندرجہ ذیل کام کرتا ہے:

آپ minify(bool $minify) طریقہ کو کال کرکے منیفکیشن کو فعال یا غیر فعال کر سکتے ہیں۔

کیوں PHP پر مبنی منیفکیشن؟ MJML 5 اب پرانے خطرناک html-minifier پیکیج کا استعمال نہیں کرتا۔ یہ پیکیج اب بھی PHP میں منیفیکیشن کو برقرار رکھتا ہے تاکہ 2.x میں متعارف کردہ آؤٹ پٹ کی طرز عمل محفوظ رہے۔ اگر آپ کو MJML 5 کے مقامی htmlnano/cssnano منیفکیشن کے آپشنز کی ضرورت ہو تو، درکار آپشن کی شکل کے ساتھ ایک مسئلہ کھولیں۔

توثیق کی سطح

ہمارا پیکیج ڈیفالٹ کے طور پر soft توثیق کی سطح کا استعمال کرتے ہوئے MJML کی توثیق کرے گا۔ آپ اسے validationLevel(ValidationLevel $validationLevel) طریقہ کا استعمال کرتے ہوئے تبدیل کر سکتے ہیں۔ دستیاب توثیق کی سطحیں یہ ہیں:

فائل کا راستہ

ہمارا پیکیج ڈیفالٹ کے طور پر . ڈائریکٹری کا استعمال کرے گا۔ آپ اسے filePath(string $path) طریقہ کو کال کرکے تبدیل کر سکتے ہیں۔

MJML 5 filePath کو شامل کرنے والے سینڈ باکس کی بنیاد کے طور پر سمجھتا ہے۔ اگر شاملات کو فعال کیا گیا ہے، تو filePath کے باہر کی راہ کو اس وقت تک روک دیا گیا ہے جب تک کہ انہیں includePath(string|array|null $path) کے ساتھ واضح طور پر اجازت نہ دی جائے۔

رسوئی

ہم ڈیفالٹ کے طور پر کسی بھی juice آپشنز فراہم نہیں کرتے۔ آپ درج ذیل طریقوں کا استعمال کرتے ہوئے رسوئی کے آپشنز شامل کر سکتے ہیں:

سپورٹ کی رہنمائی

ہمارے اوپن سورس پیکیج کا انتخاب کرنے کے لیے شکریہ! براہ کرم ان سپورٹ رہنما خطوط پر ایک لمحہ صرف کریں۔ یہ آپ کو ہمارے پروجیکٹ سے زیادہ سے زیادہ فائدہ اٹھانے میں مدد کریں گے۔

کمیونٹی کی بنیاد پر مدد

ہمارا اوپن سورس پروجیکٹ ہماری شاندار کمیونٹی کی مدد سے چلتا ہے۔ اگر آپ کے پاس سوالات ہیں یا مدد کی ضرورت ہے تو، StackOverflow اور دیگر آن لائن وسائل آپ کے بہترین دوست ہیں۔

کیڑے اور فیچر کی ترجیحات

اوپن سورس پروجیکٹ کا انتظام کرنے کی حقیقت یہ ہے کہ ہم ہر رپورٹ شدہ کیڑے یا فیچر کی درخواست کو فوری طور پر نہیں حل کر سکتے۔ ہم مسائل کو درج ذیل ترتیب میں ترجیح دیتے ہیں:

1. ہماری ادائیگی شدہ مصنوعات پر اثر انداز ہونے والے کیڑے

وہ کیڑے جو ہماری ادائیگی شدہ مصنوعات پر اثر انداز ہوتے ہیں ہمیشہ ہماری پہلی ترجیح ہوں گے۔ کچھ معاملات میں، ہم صرف ان کیڑوں کو حل کریں گے جو براہ راست ہمیں متاثر کرتے ہیں۔

2. کمیونٹی کی طرف سے پول ریگسٹس

اگر آپ نے کسی کیڑے کی نشاندہی کی ہے اور آپ کے پاس حل ہے، تو براہ کرم پول ریگسٹس جمع کرائیں۔ اپنی مصنوعات سے متعلق مسائل کے بعد، ہم ان کمیونٹی کی بنیاد پر درستگیوں کو اگلی سب سے بڑی ترجیح دیتے ہیں۔ جائزہ لینے اور منظور ہونے کے بعد، ہم آپ کے حل کو ضم کریں گے اور آپ کی شراکت کو تسلیم کریں گے۔

3. مالی مدد

ذکر کردہ زمرے سے باہر کے مسائل کے لیے، آپ ان کا حل کرنے کے لئے مالی امداد فراہم کرنے کا انتخاب کر سکتے ہیں۔ ہر اوپن مسئلہ ایک آرڈر فارم سے منسلک ہے جہاں آپ مالی طور پر تعاون کر سکتے ہیں۔ ہم ان مسائل کو فراہم کردہ فنڈنگ کی رقم کی بنیاد پر ترجیح دیتے ہیں۔

کمیونٹی کی شراکتیں

اوپن سورس اس وقت بڑھتا ہے جب اس کی کمیونٹی فعال ہو۔ چاہے آپ کیڑے حل نہیں کر رہے ہوں، کوڈ کی بہتریوں، دستاویز کے اپ ڈیٹس، سبقیں، یا کمیونٹی چینلز میں دوسروں کی مدد کے ذریعے شراکت دینے پر غور کریں۔ ہم بالعموم سب کو، ایک کمیونٹی کے طور پر، اوپن سورس کام کی مدد کرنے کی ترغیب دیتے ہیں۔

دوہرانے کے لیے، DefectiveCode کیڑے کو اس بنیاد پر ترجیح دے گا کہ وہ ہمارے ادائیگی شدہ پروڈکٹس، کمیونٹی کی پول ریگسٹس اور مسائل کے لئے موصولہ مالی مدد پر کس طرح اثر انداز ہوتے ہیں۔

لائسنس - MIT لائسنس

کاپی رائٹ © Defective Code, LLC. تمام حقوق محفوظ ہیں

یہاں پر کسی بھی شخص کو یہ سافٹ ویئر اور اس سے وابستہ دستاویزات کی کاپی حاصل کرنے کی اجازت دی جاتی ہے (جسے "سافٹ ویئر" کہا جاتا ہے)، تاکہ وہ سافٹ ویئر میں کسی بھی پابندی کے بغیر کام کر سکے، بشمول بغیر کسی حد کے، استعمال کرنے، کاپی کرنے، ترمیم کرنے، یکجا کرنے، شائع کرنے، تقسیم کرنے، ذیلی لائسنس دینے اور/یا سافٹ ویئر کی کاپیوں کو بیچنے کے حقوق حاصل کرنے، اور ان لوگوں کو اجازت دینے کا کہ جنہیں سافٹ ویئر فراہم کیا گیا ہے، کہ وہ ایسا کرسکیں، مندرجہ ذیل شرائط کے تابع:

اوپر کا کاپی رائٹ نوٹس اور یہ اجازت نامہ سافٹ ویئر کی تمام کاپیوں یا اہم حصوں میں شامل کیا جائے گا۔

یہ سافٹ ویئر "جیسا ہے" فراہم کیا جاتا ہے، بغیر کسی قسم کی وارنٹی، واضح یا مضمر، بشمول لیکن محدود نہیں، مارکیٹ ایبیلٹی، کسی خاص مقصد کے لئے موزونیت اور خلاف ورزی کے وارنٹیوں کے۔ کسی بھی صورت میں مصنفین یا کاپی رائٹ ہولڈرز کسی بھی دعوے، نقصانات یا دیگر ذمہ داریوں کے لئے ذمہ دار نہیں ہوں گے، چاہے وہ معاہدے کے ایکشن، غلطی یا کسی اور طریقے سے ہو، جو سافٹ ویئر یا سافٹ ویئر کے استعمال یا دیگر معاملات سے پیدا ہو، یا اس سے متعلق ہو۔