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

Yükseltme

Önceki bir versiyondan yükseltiyorsanız, lütfen kesme değişiklikleri ve geçiş adımları için Yükseltme Kılavuzu sayfasına göz atın.

Giriş

MJML responsive e-posta kodlamasını basitleştirmek için özel olarak tasarlanmış bir işaretleme dilidir. Anlamlı sentaksı kolaylık ve basitlik sağlarken, standart bileşenlerin kapsamlı kütüphanesi geliştirmeyi hızlandırır ve e-posta kod tabanınızın karmaşıklığını azaltır. MJML'nin açık kaynaklı motoru, en iyi uygulamalara uygun yüksek kaliteli, responsive HTML üretir. Outlook ile çalışmanın getirdiği zorlukları deneyimlediyseniz, bu paket tam size göre.

MJML uygulamamız, resmi MJML API'sinin bir sarmalayıcısı olarak hizmet vermektedir. Bu, MJML'nin doğrudan PHP içinde HTML'ye kolayca derlenmesini sağlar, NodeJS yüklemeye gerek kalmadan. Bu paket, NodeJS ve MJML CLI'yi yüklemeden MJML'i dahil etmek isteyen PHP uygulamaları için idealdir.

Örnek

// Laravel olmadan
(new MJML)->render(
'<mjml><mj-body><mj-section><mj-column><mj-text>Hello World</mj-text></mj-column></mj-section></mj-body></mjml>'
);
 
// Minify edilmiş 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 ile
MJML::render(
'<mjml><mj-body><mj-section><mj-column><mj-text>Hello World</mj-text></mj-column></mj-section></mj-body></mjml>'
);
 
// Laravel ile ve minify edilmiş HTML
MJML::minify()->render(
'<mjml><mj-body><mj-section><mj-column><mj-text>Hello World</mj-text></mj-column></mj-section></mj-body></mjml>'
);

Kurulum

  1. Önce, paketimiz kurulduğunda işletim sisteminiz için doğru ikili dosyaları çekmesini sağlamak için composer.json dosyanıza aşağıdakileri ekleyin. İkili dosyalar, install, update veya dump-autoload komutunu çalıştırdığınızda indirilecektir.

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

    MJML ikili dosyası, composer'ın kurulum veya güncellemesi sırasında bu paketin "bin" klasörüne indirilecektir. Hem yerel hem de üretim ortamlarınız için gerekli ikili dosyaların yüklendiğinden emin olun.

    Varsayılan olarak, all desteklediğimiz tüm ikili dosyaları çeker. Bant genişliği ve kurulum sürelerini azaltmak için bunu ihtiyacınız olan işletim ve mimari sistemlerle sınırlamanızı öneririz. Aşağıda mevcut ikili dosyalar bulunmaktadır.

    İşletim Sistemi Mimari Composer Post Update Komutu
    Tüm Tüm DefectiveCode\MJML\PullBinary::all
    Darwin (MacOS) arm64 DefectiveCode\MJML\PullBinary::darwin-arm64
    Darwin (MacOS) x64 DefectiveCode\MJML\PullBinary::darwin-x64
    Linux (glibc) arm64 DefectiveCode\MJML\PullBinary::linux-arm64
    Linux (glibc) x64 DefectiveCode\MJML\PullBinary::linux-x64
    Linux (musl) arm64 DefectiveCode\MJML\PullBinary::linux-arm64-musl
    Linux (musl) x64 DefectiveCode\MJML\PullBinary::linux-x64-musl
  2. Sonra, aşağıdaki composer komutunu çalıştırarak PHP paketini yükleyin:

    composer require defectivecode/mjml
  3. Hepsi bu kadar! Laravel kullanıyorsanız, paketimiz otomatik olarak Laravel'in paket keşfini kullanarak yüklenecektir.

Kullanım (Laravel Olmadan)

Laravel kullanıyorsanız, aşağıda Laravel ile kullanıma bakın.

MJML Render Etme

MJML'i render etmek için, sadece MJML stringinizi render metoduna geçirin:

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 Doğrulama

MJML'i doğrulamak için, sadece MJML stringinizi isValid metoduna geçirin:

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>'
);

Kullanım (Laravel ile)

MJML Render Etme

MJML'i render etmek için, sadece MJML stringinizi MJML yüzeyinde render metoduna geçirin:

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 Doğrulama

MJML'i doğrulamak için, sadece MJML stringinizi MJML yüzeyinde isValid metoduna geçirin:

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>'
);

Konfigürasyon

Aşağıdaki komutu kullanarak konfigürasyon dosyasını yayınlayabilirsiniz:

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

Bu, config klasörünüzde bir mjml.php konfigürasyon dosyası oluşturur. Konfigürasyon dosyasında listelenen tüm seçenekler, MJML yüzeyini kullandığınızda config nesnesine geçer.

Konfigürasyon

Tüm konfigürasyon seçenekleri MJML nesnesi üzerinde aşağıdaki yöntemleri doğrudan çağırarak ayarlanabilir.

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>'
);

Paketimiz, resmi MJML paketinin aynı konfigürasyonu izler, aşağıdaki istisnalar dışında:

Fontlar

Paketimiz varsayılan olarak şu fontları kullanır:

Fontları aşağıdaki yöntemleri kullanarak değiştirebilirsiniz:

Yorumlar

Yorumlar varsayılan olarak korunur. Eğer yorumları kaldırmak istiyorsanız, removeComments() metodunu kullanabilirsiniz.

removeComments() metodunu geri almak için keepComments() metodunu çağırabilirsiniz.

Dahil Edilenleri Yoksay

Varsayılan olarak, paketimiz mj-include etiketlerini yoksayar. Bu, MJML 5'in daha güvenli varsayılanı ile uyuşur. Dahil etmeleri etkinleştirmek için ignoreIncludes(false) çağrısını yapabilirsiniz.

Dahili etmeleri etkinleştirirken filePath(string $path) temel dizini olarak kullanın ve includePath(string|array|null $path) ile ek dahil dizinlerine izin verin.

Güzelleştirme

Paketimiz HTML'i js-beautify kullanarak güzelleştirecektir. MJML 5.2 de js-beautify kullanmaktadır, ancak bu paket, özel PHP beautifyOptions'ın çalışmaya devam etmesi için sarmalayıcı düzeyde güzelleştirme sağlamaktadır. Varsayılan seçenekler şunlardır:

js-beautify seçenekler sağlarken snake_case kullanıyor, ancak paketimizi kullanırken camelCase kullanmalısınız. Bu tercihi, paketimizi diğer konfigürasyon seçenekleriyle tutarlı kılmak için yaptık. Paketimiz camelCase seçeneklerini otomatik olarak snake_case'e dönüştürecektir.

Bu seçeneklerden herhangi birini geçersiz kılmak için geçerli bir js-beautify konfigürasyonu sağlayarak aşağıdaki yöntemleri kullanabilirsiniz:

Minimize Etme

Paketimiz, etkinleştirildiğinde HTML çıktısını küçültecektir. Minifikasyon şunları gerçekleştirir:

Minifikasyonu etkinleştirmek veya devre dışı bırakmak için minify(bool $minify) metodunu çağırın.

Neden PHP tabanlı minifikasyon? MJML 5 artık eski savunmasız html-minifier paketini kullanmıyor. Bu paket, 2.x sürümünde tanıtılan çıktı davranışını korumak için PHP'de minifikasyonu tutuyor. Eğer MJML 5'in yerel htmlnano/cssnano minimizasyon seçeneklerine ihtiyacınız varsa, gerekli seçenek şekliyle bir sorun açın.

Doğrulama Düzeyi

Paketimiz varsayılan olarak MJML'i soft doğrulama düzeyi ile doğrular. Bunu şu metodu kullanarak değiştirebilirsiniz: validationLevel(ValidationLevel $validationLevel). Aşağıdaki doğrulama düzeyleri mevcuttur:

Dosya Yolu

Paketimiz varsayılan olarak . dizinini kullanacaktır. Bunu filePath(string $path) metodunu çağırarak değiştirebilirsiniz.

MJML 5, filePath'ı dahil edilen sığınak temel olarak ele alır. Eğer dahil etmeler etkinleştirildiyse, filePath'ın dışındaki yollar, açıkça includePath(string|array|null $path) ile izin verilmediği sürece reddedilir.

Juice

Varsayılan olarak hiçbir juice seçeneği sunmuyoruz. Juice seçeneklerini eklemek için aşağıdaki yöntemleri kullanabilirsiniz:

Destek Kılavuzları

Açık kaynak paketimizi seçtiğiniz için teşekkürler! Lütfen bu destek kılavuzlarına bir göz atmak için biraz zaman ayırın. Bu kılavuzlar, projemizden en iyi şekilde yararlanmanıza yardımcı olacaktır.

Topluluk Tarafından Destek

Açık kaynak projemiz, harika topluluğumuz tarafından destekleniyor. Sorularınız varsa veya yardıma ihtiyacınız varsa, StackOverflow ve diğer çevrimiçi kaynaklar en iyi seçeneklerinizdir.

Hatalar ve Özellik Önceliklendirmesi

Açık kaynak projesini yönetmenin gerçeği, bildirilmiş olan her hata veya özellik talebini hemen ele alamayacağımızdır. Sorunları aşağıdaki sırayla önceliklendiriyoruz:

1. Ücretli Ürünlerimizi Etkileyen Hatalar

Ücretli ürünlerimizi etkileyen hatalar her zaman en yüksek önceliğimiz olacaktır. Bazı durumlarda, yalnızca bizim doğrudan etkilendiğimiz hataları ele alabiliriz.

2. Topluluk Çekme Talepleri

Bir hata tespit ettiyseniz ve bir çözümünüz varsa, lütfen bir çekme talebi gönderin. Ürünlerimizi etkileyen sorunlardan sonra, bu topluluk odaklı düzeltmelere en yüksek önceliği veriyoruz. İncelendikten ve onaylandıktan sonra, çözümünüzü birleştirecek ve katkınızı takdir edeceğiz.

3. Finansal Destek

Belirtilen kategorilerin dışındaki sorunlar için, çözümünü finanse etmeyi tercih edebilirsiniz. Her açık sorun, maddi katkıda bulunabileceğiniz bir sipariş formuna bağlıdır. Bu sorunları sağlanan finansman miktarına göre önceliklendiriyoruz.

Topluluk Katkıları

Açık kaynak, topluluğu aktif olduğunda gelişir. Hataları düzeltmiyor olsanız bile, kod iyileştirmeleri, belgeleri güncellemeler, öğreticiler aracılığıyla veya topluluk kanallarında başkalarına yardımcı olarak katkıda bulunmayı düşünün. Herkesi, bir topluluk olarak, açık kaynak çalışmalarını desteklemeye teşvik ediyoruz.

Tekrar belirtmek gerekirse, DefectiveCode, hataları nasıl etkilediklerine göre önceliklendirecektir; bu, ücretli ürünlerimize etkisi, topluluk çekme talepleri ve sorunlar için alınan finansal desteği içermektedir.

Lisans - MIT Lisansı

Telif Hakkı © Defective Code, LLC. Tüm hakları saklıdır

Bu yazılım ve ilgili belge dosyalarının (bundan böyle "Yazılım" olarak anılacaktır) bir kopyasını edinen herhangi bir kişiye, Yazılım'da kısıtlama olmaksızın işlem yapma izni verilmiştir; bu izin, Yazılım'ı kullanma, kopyalama, değiştirme, birleştirme, yayımlama, dağıtma, alt lisans verme ve/veya Yazılım'ın kopyalarını satma haklarını da içermektedir ve Yazılım'ın sağlandığı kişilerin bunu yapmasına izin verilmektedir; ancak, aşağıdaki koşullara tabi olacaktır:

Yukarıdaki telif hakkı bildirimi ve bu izin bildirimi, Yazılım'ın tüm kopyalarında veya önemli kısımlarında yer almalıdır.

YAZILIM "OLDUĞU GİBİ" SAĞLANMAKTADIR; HERHANGİ BİR TÜRDE, AÇIK YA DA ZIMNİ, SATILABİLİRLİK, BELİRLİ BİR AMACA UYGUNLUK VEYA HUKUKİ İHLAL GARANTİSİ DE DAHİL OLMAK ÜZERE HİÇBİR GARANTİ VERMEZ. YAZARLAR VEYA TELİF HAKKI SAHİPLERİ, YAZILIM’DAN veya YAZILIM'IN KULLANIMI veya DİĞER İŞLEMLERİNDEN KAYNAKLANAN HERHANGİ BİR TALEP, ZARAR VEYA DİĞER YÜKÜMDÜRLÜKLERDEN SORUMLU TUTULAMAZ; İSTER SÖZLEŞME TASARISI, SORUMLULUK, YA DA BAŞKA BİR ŞEKİLDE OLSUN.