English | العربية | বাংলা | Bosanski | Deutsch | Español | Français | हिन्दी | Italiano | 日本語 | 한국어 | मराठी | Português | Русский | Kiswahili | தமிழ் | తెలుగు | Türkçe | اردو | Tiếng Việt | 中文
- Yükseltme
- Giriş
- Kurulum
- Kullanım (Laravel Olmadan)
- Kullanım (Laravel ile)
- Konfigürasyon
- Destek Kılavuzları
- Lisans - MIT Lisansı
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 ileMJML::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ş HTMLMJML::minify()->render( '<mjml><mj-body><mj-section><mj-column><mj-text>Hello World</mj-text></mj-column></mj-section></mj-body></mjml>');
Kurulum
-
Önce, paketimiz kurulduğunda işletim sisteminiz için doğru ikili dosyaları çekmesini sağlamak için
composer.jsondosyanıza aşağıdakileri ekleyin. İkili dosyalar,install,updateveyadump-autoloadkomutunu ç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,
alldesteklediğ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::allDarwin (MacOS) arm64 DefectiveCode\MJML\PullBinary::darwin-arm64Darwin (MacOS) x64 DefectiveCode\MJML\PullBinary::darwin-x64Linux (glibc) arm64 DefectiveCode\MJML\PullBinary::linux-arm64Linux (glibc) x64 DefectiveCode\MJML\PullBinary::linux-x64Linux (musl) arm64 DefectiveCode\MJML\PullBinary::linux-arm64-muslLinux (musl) x64 DefectiveCode\MJML\PullBinary::linux-x64-musl -
Sonra, aşağıdaki composer komutunu çalıştırarak PHP paketini yükleyin:
composer require defectivecode/mjml -
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:
preprocessors- Bu seçenek mevcut değil. Bu seçeneği eklemek istiyorsanız bir pull request açabilirsiniz.minifyOptions- Minifikasyonu PHP'de tutuyoruz, çıktı uyumluluğu için. Minifikatör yorumları (Outlook koşulları hariç) kaldırır, boşlukları çökertir ve etiketler arasındaki boşlukları kaldırır.sanitizeStyles,templateSyntaxveallowMixedSyntax- Bu MJML 5 seçenekleri, MJML'nin yerel htmlnano/cssnano minimizasyon yoluna uygulanır. Bu paketin PHP minimifikatörü tarafından kullanılmaz.
Fontlar
Paketimiz varsayılan olarak şu fontları kullanır:
- Open Sans: 'https://fonts.googleapis.com/css?family=Open+Sans:300,400,500,700
- Droid Sans: 'https://fonts.googleapis.com/css?family=Droid+Sans:300,400,500,700
- Lato: https://fonts.googleapis.com/css?family=Lato:300,400,500,700
- Roboto: https://fonts.googleapis.com/css?family=Roboto:300,400,500,700
- Ubuntu: https://fonts.googleapis.com/css?family=Ubuntu:300,400,500,700
Fontları aşağıdaki yöntemleri kullanarak değiştirebilirsiniz:
addFont(string $font, string $url)- Fontları ekle.removeFont(string $font)- Fontları listeden kaldır.setFonts(array $fonts)- Font listesini ayarla. Bir dizi fontu şu formatta sağlamalısınız:['font-name' => 'font-url'].
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:
- indentSize: 2
- wrapAttributesIndentSize: 2
- maxPreserveNewline: 0
- preserveNewlines: false
js-beautifyseç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:
setBeautifyOptions(array $options)-js-beautifyseçeneklerini ayarlayın.addBeautifyOption(string $option, mixed $value)- Birjs-beautifyseçeneği ekler.removeBeautifyOption(string $option)- Birjs-beautifyseçeneğini kaldırır.
Minimize Etme
Paketimiz, etkinleştirildiğinde HTML çıktısını küçültecektir. Minifikasyon şunları gerçekleştirir:
- HTML yorumlarını kaldırır (Outlook koşullu yorumları gibi
<!--[if mso]>korur) - Birden fazla boşluk karakterini tek boşluk haline getirir
- HTML etiketleri arasındaki boşlukları kaldırır
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-minifierpaketini 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:
strict- Belgeniz doğrulamadan geçiyor ve herhangi bir hata varsa render edilmez.soft- Belgeniz doğrulamadan geçiyor ve hata olsa bile render edilir.skip- Belgeniz doğrulamadan geçmeden render edilir.
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:
setJuiceOptions(array $options)- Juice seçeneklerini ayarlayın.addJuiceOption(string $option, mixed $value)- Bir juice seçeneği ekler.removeJuiceOption(string $option)- Bir juice seçeneğini kaldırır.setJuicePreserveTags(array $tags)- Juice koruma etiketlerini ayarlayın.addJuicePreserveTag(string $tag, mixed $value)- Bir juice koruma etiketini ekler.removeJuicePreserveTag(string $tag)- Bir juice koruma etiketini kaldırır.
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.