Sizin Haml için tutum?

9 Cevap php

Ben (phammable ile) Haml PHP ile kullanmak için bir şablon motoru olarak düşünüyorum.

Bunu kullanarak herhangi bir potansiyel sakıncaları biliyor musunuz? Googling çok fazla, bütün bu biçimlendirme haiku şeyi yüceltmek gibi görünüyor.

9 Cevap

Haml iyi bir test sürüşü için alarak yaşadığı, bu ruloları nasıl hissediyorum. Bir görünüm alır ve Haml dönüştürmek. Ruby yüklü varsa da, StaticMatic sahipsiniz. Eğer şablon gibi bakmak nasıl isterseniz, onu kullanın - çünkü kendinizi, çünkü hype.

Ama yutturmaca kendisi burada değil unutmak, ama Haml ve Sass oldukça harika çünkü yok.

Ben bir yıldan fazla gün sonra Haml gün kullanarak oldum. Bundan önce ben JSP ve PHP kullanarak yaklaşık beş yıl koymak.

Haml kullanın.

Ana avantajlarından biri much daha az kod ile tam olarak aynı sayfa yapısını ve mantığını ifade olabilir. Saf HTML ve vb JSP, PHP, erb, gibi buna dayalı "çiftleşmiş sistemleri", sen sınırlandırmak için < yüzlerce ve > karakter ve ek karakter yazmak zorunda programlama dili kod alanlarından HTML alanları. Ve açılış ve kapanış etiketleri yazmanız gerekir. Çok geçmeden korumak için acı ve yorucu bir kod şaşırtıcı çalılığın ile rüzgar. Bir süre sonra yapıyor ne tür her şey ne sefil bir deneyim farkında değilsiniz böylece Ama sıralamak buna alışmak.

Haml çok daha basit bir sistem kullanır. Böyle bir etiket açın:

%p

Bu gibi içine şeyler koymak:

%p
  Bla bla bla.

Bundan daha yazın ve okumak çok kolay:

<p>Bla bla bla</p>

Ne girinti tarafından kontrol edilir ne içeride:

%table
  %tr
    %td
      Bla bla bla.
    %td
      %p
        Hey now.
      %p
        Right on.

Bu gibi değişkenler çıktıyı şunlardır:

%p
  = some_variable

Daha az sayıda karakter vardır, çünkü sadece daha kolay değil. Tip zor az garip karakterler vardır, çünkü o da kolay. Büyük bir anlaşma gibi gelebilir, ama günde 10.000 kez "kolay" çarpma ve gerçekten bir fark yaratıyor olabilir.

Haml öğrenmek için son derece kolaydır. Tüm biçimi tamamen kendi web sitesinin bir sayfasında açıklanmıştır. Ben yaklaşık 15 dakika içinde aldı. Orada biraz daha fazla çaba alacak birkaç nüanslar vardır, ancak hemen Haml yararlı işi başlayabilirsiniz.

Bu gibi şeylere karşı kötü con tasarımcıları bir hard zaman düzenini değiştirerek sahip olmasıdır. Tüm vb takım boyutu, proje türüne bağlıdır Ama sadece düzen dosyaları ile çalışma olacak ise o zaman sadece sonunda tekne yüzer ne olursa olsun şablon sistemi almak - bu uzun vadede o kadar önemli değil neyse.

Kanımca Haml bile Ruby sürümünde küçük yararlıdır, ama bazı Ruyb her şeyi isteyebilirsiniz katılıyorum, ama PHP bile daha az mantıklı - amacı ile tasarlandı dilleri HTML ile yakından çalışmak. Ben gerçekten Haml arasında yousin PHP sürümünden alabilir hiçbir fayda görüyorum. Neden basit bir şey kompleks yapmak?

Ayrıca haml-lang.com en gelişmiş özelliklerini destekler PHP için geçerli bir HAML uygulaması vardır: http://haml-to-php.com

Dinamik özellikler: PHP ve Python içine koşuyoruz HAML kullanarak downsides biri. HAML farkla HTML yazmak benim sevdiğim bir yoldur, ancak kodunda dinamik özelliklerini üreten bir ağrı olabilir. Spec dile özgü uygulamaları arasındaki sözdizimi o küçük farklılıklar ekle ... Python HAML ve PHP mostly Ruby gibi, ama saçını gözyaşı yapacak farklılıklar vardır.

İdeal bir dünyada, gerçekten çapraz dil şablonları için haml ve bıyık Mashup'a ile HTML yazmak isterim. ;)

HAML ve büyük bir dezavantajı kullanmak için bir çift gerçekten iyi nedenleri vardır.

Ben ilk dezavantajı ele alacağız. Bu toolchain bir daha araçtır. Ben Codekit gibi Mac'lerde tüm takım için basit uygulamalar buldum. Ben PC hakkında emin değilim. Eğer tasarımcı veya ön-uç kodlayıcılar bu sıçrattı rahat olduğundan emin olmak gerekir.

Şimdi büyük faydalar için.

Eğer kapanış etiketleri gerekmez, çünkü 1) hemen HTML yaklaşık yarısını döken edeceğiz.

2) Boşluk önemlidir. Bu tüm ekip için tutarlı formatlama zorlar.

3) kimlikleri ve sınıfları nedeniyle mark-up minimalizm için dışarı atlamak

4) biçimlendirme olmamalı kalemler de öne ve doğru yerlere taşınması için yalvarıyorum. Bu gerçekten büyük bir faydadır. Inline stilleri dekoratör sınıfları ve javascript gibi bir boğaz başparmak gibi dışarı sopa.

Çok daha az işaretleme var olduğundan 5) anlamsal etiketi seçimler yapma vurgulamak olacaktır. Listesi etiketleri ile bitmedi listeleri dışarı sopa olacak; tablolarda değil sekmeli veri dışarı duracak; başlık etiketlerini olmayan başlıklar dikkat çekiyor.

6) sözdizimi kimlikleri ve sınıfları göstermek için noktalar ve kare işaretleri kullanarak, CSS / AZ / SASS yakındır. Bu küçük bir şey gibi ama belirgin CSS sözdizimi ile senkronize yıl düzenli HTML bir çift için kullandıktan sonra görünüyor.

Haml gerçekten benim kendi yapmak bu yüzden, örneğin, W2tags ve demo is here bulunuyor KURU değil:

%ul
  %li.menu.item menu 1
  %li.menu.item menu 2
  %li.menu.item menu 3

benim uygulamasında bir makro etiketi yapmak ve kullanmak (H ..!):

!H!_li
 %li.menu.item $0

%ul
  -li menu 1;menu 2;menu 3

ya da bunun gibi kod olabilir

%ul
  -li menu 1;\
      menu 2;\
      menu 3

Şablon 'diller' yardımseverlik belli bir sınırı vardır. Örnekler, iyi görünüyor ama gerçek durumlarda böyle asla.

Şablonlarınız bir 'şablon sistemi' ile basitleştirilmiş gereken o kadar karmaşık ise o zaman onları basit veri yapıları, beslenme ve / veya daha küçük kısmi şablonlar şablon bölerek kendi karmaşıklığı azaltmak için çalışmalısınız.