Kodlama Standartları: Koklanacak Bir Şey

Yayınlanan: 2021-07-19

Bazı sorular, yazılım geliştirme kadar uzun süredir var. Sekmelerle veya boşluklarla girinti mi yapmalıyım? Kodlama standartları gerçekten bu kadar önemli mi? Bazı keyfi kurallara uyarak gerçekten zaman harcamak zorunda mıyım?

Sırasıyla, bu soruların cevapları: sekmeler (tabii ki), evet (daha az belirgin) ve hayır (bir çeşit).

PHP Kod Algılama

Standartların önemi başkaları tarafından uzun uzadıya ele alınmıştır, bu yüzden burada ayrıntılara girmeyeceğim, ancak bunun püf noktası şudur: Belirli bir projede iç tutarlılık arzu edilir çünkü okunabilirliği artırır, sürprizleri sınırlar ve geleceğe katkıda bulunabilir. kodun sağlamlığı.

Standartlara bağlı kalarak “zaman kaybetmenize” gerek yok çünkü bu standartları otomatik olarak uygulamanın yolları var!

Burada ele alacağım şey , WordPress projeleri için bağımsız PHP Codesniffer (PHPCS) aracını hızlı ve kolay bir şekilde kurmanın bir yoludur. Bu, şunları yapmanızı sağlayacaktır:

  • Kodunuzdaki standartlara uygunluk hakkında bir rapor oluşturun
  • Çok çeşitli uyumluluk sorunlarını otomatik olarak çözün

Aşağıdaki örneklerde WordPress standartlarını uygulayacağız.

yükleme

Önkoşullar:

  • Terminal erişimi (Windows kullanıcıları Windows için Bash ile başarılı olabilir, ancak bu denenmemiştir)
  • Besteci paket yöneticisi

PHPCS'yi kendi başına kurmak mümkün olsa da, varsayılan olarak WordPress'i desteklemez. Bunun için, hızlı bir şekilde adlandırılan WordPress Kodlama Standartlarını (WPCS) kuracağız.

İlk olarak, global kullanım için WPCS'yi kurmak istediğiniz yere gidin.

 $ > cd /path/to/her yerde

Paketi besteci ile kurun.

 $ > besteci oluştur-proje wp-kodlama-standartları/wpcs --no-dev

Bu noktada, WPCS kullanmaya başlayabiliriz, ancak komutu her çalıştırdığımızda ayarlanacak bazı bayraklar vardır. Kolaylık olması için birkaç takma ad ayarlayalım.

Açık favori editörü ev dizinden .profile (ya da mevcut değilse oluşturun) ve şunları ekleyin:

 # WP Kodlama Standartları
dışa aktar YOL=$YOL:"/path/to/where/wpcs/vendor/bin"
takma ad wpcs='phpcs --standard=WordPress --extensions=php
takma ad wpcbf='phpcbf --standard=WordPress --extensions=php

Buraya iki takma ad ekledik – biri phpcs için (uyumluluk hatalarını bulur ve görüntüler) ve diğeri phpcbf için (phpcs tarafından bulunan çeşitli sorunları otomatik olarak giderir). Ek seçenekler aşağıdakileri yapar:

–standard=WordPress – WordPress standartlarını uygular (WPCS'de ayarlanır)

–extensions=php – yalnızca PHP dosyalarını hedefleyin (PHPCS varsayılan olarak PHP, CSS ve JS'yi hedefler)

Terminali (veya source .profile ) yeniden başlatın ve WPCS kodunuzu koklamaya hazır!

Koklama

Bir dosyada koklama raporu oluşturmak için aşağıdakileri çalıştırın:

 $ > wpcs /path/to/your/php/project/file.php

Bu, raporu terminalde çıkaracaktır. Alternatif olarak, bunu bir dosyaya aktarabilirsiniz:

 $ > wpcs /path/to/your/php/project/file.php > output.txt

Koku Raporu

WPCS sniff çıktınız şöyle olacaktır:

PHP Codesniffer Raporu

Burada paketlenmiş oldukça fazla bilgi var, ancak oldukça temiz bir şekilde düzenlenmiş. Elimizdekileri gözden geçirelim:

  • hedeflenen dosya
  • Kaç hata/uyarı bulunduğunun ve etkilenen satır sayısının özeti
  • Önem düzeyleri ve açıklamalarıyla birlikte bulunan sorunların listesi
  • phpcbf'nin otomatik olarak kaç sorunu çözebileceğinin bir göstergesi (temelde bir [x] ile tüm sorunlar)

Beklendiği gibi, PHPCS her şeyi açıklayamaz. Yorumlarda noktalama seçimi ve belirli kod biçimlendirme türleri hakkında varsayımlarda bulunmaz, ancak sizin için çok çeşitli sorunları çözebilir.

Güzel bir bonus, WordPress kurallarının PHPCS'nin işlevlerin olası kötüye kullanımı da dahil olmak üzere WordPress'e özgü sorunları algılamasına izin vermesidir.

sabitleme

Sorunları otomatik olarak çözmek daha kolay olamazdı:

 $ > wpcbf /path/to/your/php/project/file.php

Kısa bir özet çıktı:

PHP Kod Düzeltici çıktısı

Kalan hataların manuel olarak düzeltilmesi gerekir, ancak genellikle birçok sorunun çözüldüğünü görürsünüz.

Özel Kurallar

Ayrıca, kural setini özelleştirmek, projenizdeki belirli dizinleri hariç tutmak vb. isteyebilirsiniz. Kuralkümesi dokümanlar açıklamalı PHPCS Yapabileceğiniz tüm değişikliklerin örneklerini sunmak, ama genel olarak sizi sadece konuşma:

  1. Bir kural kümesi dosyası oluşturun
  2. PHPCS komutunda referans alın

İşte bir kural kümesi dosyası örneği:

 <?xml version="1.0"?>
<ruleset name="WordPress Kodlama Standartları">
    <description>Özelleştirilmiş WordPress standartları.</description>
    <kural ref="WordPress">
        <exclude name="Generic.Formatting.MultipleStatementAlignment.NotSameWarning"/>
    </kural>
    <exclude-pattern>*/bin/*</exclude-pattern>
    <exclude-pattern>*/node_modules/*</exclude-pattern>
    <exclude-pattern>*/tests/*</exclude-pattern>
</ruleset>

Örnekte aşağıdakileri yaptık:

  • WordPress kural kümesine başvurulur (WPCS'den)
  • Bir kural hariç tutuldu
  • Bazı dizinler hariç tutuldu

Kural kümesi dosyası, WPCS'yi hangi dizinden çağırıyor olursanız olun (proje, tema veya eklenti kökü genellikle mantıklıdır) yerleştirilebilir ve bir bayrak aracılığıyla başvuruda bulunabilir. .profile dosyanızdaki –standard bayrağını şu şekilde güncelleyin:

 # WP Kodlama Standartları
dışa aktar YOL=$YOL:"/path/to/where/wpcs/vendor/bin"
takma ad wpcs='phpcs --standard=codesniffer.ruleset.xml --extensions=php
takma ad wpcbf='phpcbf --standard=codesniffer.ruleset.xml --extensions=php

WPCS'yi çalıştırdığınızda hangi kuralların işaretlendiğini kontrol etmek için, aşağıdaki gibi -s bayrağıyla çalıştırın:

 $ > wpcs -s /path/to/your/php/project/file.php

Sıradaki ne?

Yukarıdaki kılavuz, WordPress projenizde geçici standartlara uygunluk kontrolleri yapmanızı sağlayacaktır, ancak bunu standart geliştirme döngünüze entegre etmek istiyorsanız, bir sonraki mantıklı adım otomasyondur.

PHPCS'yi gulp veya grunt (PHPCS modülleri her ikisi için de mevcuttur) gibi bir görev çalıştırıcıya entegre etmeyi veya başka bir şekilde CI/CD oluşturma işlem hattınıza entegre etmeyi düşünün.

Web geliştirme ve tasarım konusunda yardım için bugün bizimle iletişime geçin.


Sizinle ilgili yardıma ihtiyacınız varsa, bizimle iletişime geçmekten çekinmeyin.