2012-11-12 11 views
6

Geçtiğimiz günlerde gittik ve uygulamaya geçirdik (şimdi yayınlamak için) geliştiricilere rapor göndermek için merkezi sunucumuzun kancalarını almanın yanı sıra, geliştirme ortamlarında phpcs ile kodlarımın standartlarını otomatik olarak işaretlememizi sağlayan birkaç araç hazırladık.Dosya için kullanılan phpcs kural kümesini geçersiz kılabilir miyim?

Hepsi güzel ve zeki, iyi çalışıyor, ancak mantıksal bir nedene uygun olmayan her dosyayı göz ardı etmemek için her zaman kod standartlarımıza güvenebilmek istiyoruz. Şimdi, varsayılan PEAR standardında bazı şeyleri geçersiz kılan kendi kurallarımız var, ancak mümkünse biraz daha ilerlemek istiyoruz.

Bizim sorunumuz, PEAR standardı tüm sınıflar/iş mantığı için mükemmel olmakla birlikte, görüntüleme dosyalarında, söz konusu kuralları gevşetmek istediğimiz, parantezlerin kendi satırlarında olması gerektiğine inanılmasıdır. Sorun şu ki, bu dosyalarda çoğunlukla html tanımlamaktayız ve sahip olduğumuz tek kontrol yapıları basitse-else ya da foreach ifadeleri ve php açıldıktan sonra bir satırsonu ekleyerek, yeni satır sonu, satır sonu ve kapanış php biraz saçmadır.

Gerekli sözdizimi geçerli olabilmesi için:

<?php 
} 
// end of some if statement ?> 

yerine görünümler için kullanmak istediğiniz? Bu bizim kod daha okunabilir kılacak

<?php } // end of some if statement ?> 

...

Biz alternatif olarak sözdizimi(), afaik gibi temelden yoksun çünkü temelde burada da geçerlilik konusunda bazı problemler vardı (hepsi beyaz boşlukla ilgili ...).

Tüm dosyanın yok sayılması (// @codingStandardsIgnoreFile ile) bizim için bir seçenek değildir.

tl; dr

yüzden biz hala uyması bir standart var yani bizim görünümü dosyaları için ayrı kural setine tanımlamak yapmak istiyorum ne ama bu cephelerde rahat kurallara bizim kod can yüzden hala okunabilir hale getirilebilir.

Ben

... tavsiyeleriniz bekliyoruz ayrıca PEAR'a uygun düzenli görünüm dosyalarını yapmak için ... henüz phpcs hakkında çok bilgili değilim ve kendimi gerçi mantıklı olan anahtar kelimeler kullanarak herhangi çözümler bulamadık

cevap

6

Bazı dosyalardan çıkmak istediğiniz birkaç mesaja rastlarsa, bu istisnaları doğrudan ruleset.xml dosyanıza ekleyebilirsiniz. Örneğin:

<!-- 
    You can also be more specific and just exclude some messages. 
    Please note that all message-specific ignore patterns are 
    checked using absolute paths. 

    The code here will just hide the ContainsVar error generated by the 
    Squiz DoubleQuoteUsage sniff for files that match either of the two 
    exclude patterns. 
--> 
<rule ref="Squiz.Strings.DoubleQuoteUsage.ContainsVar"> 
    <exclude-pattern>*/tests/*</exclude-pattern> 
    <exclude-pattern>*/data/*</exclude-pattern> 
</rule> 

Ben senin görünüm dosyalarının saklandığı emin değilim, ama bir dışlama-desen (temelde sadece bir normal ifade) kullanarak bunları eşleşecek o zaman bazı dinlenmek mümkün olacak Onlara ilişkin kurallar.

Ref = "" biti, görünüm dosyalarınıza phpcs komutunu çalıştırmak ve -s komut satırı bağımsız değişkenini kullanmak için en iyi yoldur. Her mesaj için, daha sonra, kural kümenize belirli dışlama kalıpları eklemek için kullanabileceğiniz benzersiz bir kod alırsınız.

Kural kümesi dosyalarında da yapabileceğiniz bir çok şey var. Check out the docs here.

+0

Unutmayın: sürüm 1.4.1'de bir dışlama kuralı hatası olduğundan PHP_CodeSniffer sürüm 1.4.2'yi (en son kararlı sürüm) kullandığınızdan emin olun. –

+0

Teşekkür ederim, temelde aradığım şey buydu. Farklı türde projeler için farklı konumlarda olduklarından, görüntüleme dosyalarının konumunu kasıtlı olarak belirsiz tuttum. Bunu anlayabiliriz :) – sg3s

+0

Aha! "-s", beni sadece Sniff'lerle boğuşturarak kurtardı. Teşekkürler :) – markdwhite

İlgili konular