Bir besteci kullanarak WordPress’in geliştirilmesinde kod standartları nasıl uygulanır

Tork için son makalemde, PHP topluluğu tarafından belirlenen kodlama standartlarını izleyen PHP kodu için WordPress çekirdeği için ayarlananlardan daha makul olduğunu düşündüğümü yazdım. Bu standart, 10 yaş veya daha uzun olan dil özellikleriyle sınırlı olan mevcut miras kodunun ihtiyaçlarını karşılamaya dayanmaktadır. Yeni bir WordPress eklentisi, site veya uygulamaya başladığınızda, durumunuz tamamen farklı olduğunda aynı kararı vermeniz için bir neden yoktur. Makalenin bir takibi olarak, size PSR-2 veya hatta WordPress kodlama standartları gibi belirlenmiş standartları nasıl uygulayabileceğinizi ve nasıl uygulayabileceğinizi göstermek istiyorum. Bunu PHP Code Sniffer adlı bir cihaz kullanarak yapabilirsiniz, bu makalede, kodunuzun bu kuralı takip edip etmediğini ve sapmaların çoğunu otomatik olarak geliştirip geliştirmediğini test etmek için bu aracı ve diğer araçları nasıl kullanacağınızı göstereceğim. Ayrıca, bir kod da yapacağız.
Kodlama standardı neden önemlidir? Genellikle insanlar kodlama standartları hakkında yazdıklarında, bunun önemli olduğunu söylerler, çünkü bir projede birçok geliştiricisi olduğu için kodu okumak ve azaltmayı kolaylaştırır. Hepsi doğru, katılıyorum. Ama bu yüzden kodumda uygulanan ve otomatik olarak geliştirilen kod stilini gerçekten sevmiyorum. Bence kod stili konusunda çok endişeli değil, ekrandaki harfleri daha fazla ve daha fazla gerçek koda odaklanmış düşünmeme izin veriyor. Kod yazmak kolay değildir ve gelişmiş odak yardımcı olur. Bence düşünmem gerekmeyen şeyler hakkında daha az düşünmek çok önemli bir şey. Örneğin, HTTP isteklerinin nesne temsilinin nasıl tasarlanabileceğini düşünebilirim. Sorunları çözmenin birçok geçerli yolu vardır. Bunun yerine, diğer insanların yaptığı gibi PSR-7 standardına göre belirlenen modeli takip edeceğim. Bu sadece Standard’ı standart olarak takip etmekle kalmaz, aynı zamanda kodunuzu çalıştırmak için çerçeve seçimi yazdığınız kodu etkilemediğinde de işe yarar.
Ve bir PHP çerçevesi ile çalıştırılabilmesi için WordPress’i yeniden yazmayı tartışmıyorum. WordPress Rest API ve WP-CHLI bu sorunların çoğunu tartışmamızı sağlar. Bunun yerine, kendi özel site kodunuz veya eklentiniz hakkında konuşuyoruz. Sniffer PHP Kodu Sniffer Hoş olmayan bir kod arıyor. “Kötü koku” terimi koku kodunu ifade eder. Kod kokusu, kodda, kodda ortak bir problemin meydana geldiği anlamına gelen bir olasılık olduğunda bir modeldir. İşe yaramadığı değil, optimal olmadığı için. Örneğin, çok uzun bir sınıf, koku iyi değil. Bu, kötü olduğu anlamına gelmez, ancak bu kokunun önerdiği sorunun genel çözümüne dayanarak kodu artırmanın neden bu kadar uzun sürebileceğini düşünmek. Sneshing Kodun standart ihlali, bu araçla tespit edebileceğiniz sadece bir tür koku türüdür. Kodlama standartlarının uygulanmasına bakalım. Bu makale için, kurulumu ayarlamak ve sniffer ve diğer araçları çalıştırmak için bir besteci kullanacağım. Armut kullanarak yükleyebilir ve doğrudan CLI’den çalıştırabilirsiniz, besteci kullanarak daha kolaydır. Ayrıca, bu, sniffer sürümünü ve proje tarafından çağrılan phunit gibi diğer araçları çalıştırmanızı sağlar, sistem sürümü değil.
Aşağıda, bir besteci kullanarak projenize bir kod sniffer eklemek için bir komut: besteci SquizLabs/php_codesniffer -dev gerektirir -Dev -Dev kullandığımı unutmayın. “İstek” besteci bölümüne ekledi. Bu şekilde, bu bağımlılık olmadan üretim veya serbest bırakma için bir kod yapabilirsiniz. Şimdi besteci dosya komut dosyasına, “Sniffs” adlı bir komut dosyası ekleyin. Kokulu her dizin için “PHPCS -Standart = PSR2 ” komutunu çalıştırmak istiyoruz, bu yüzden SRC ve Test adlı bir dizini koklamak istiyorsak, bunu komut dosyamız için kullanacağız: {{
“senaryo”: {
“Sniffs”: “PHPCS -Standart = PSR2 SRC/ && PHPCS -Standart = PSR2 TEST/”
}
} Şimdi her çalıştığımızda komut dosyası kullandığımızda “besteci sniffer”, PHP kodu sniffer PSR-2 standart ihlallerini rapor edecektir. Harika ve manuel olarak düzeltebilirsiniz, ancak otomatik olarak ne kadar düzeltebileceğimizi görelim. Bu arada, PHP kodu sniffer için standart bir WordPress kodlama sniffer vardır. Oraya gitmek istiyorsanız buradan alabilirsiniz. Problem çözücüler, sayfada kodun nasıl ayarlanacağına dair standartlara uymayan sorun çözücüler iyi bir zaman yatırımı değildir. Bunun yerine, fikrimi standardı takip etmek için ayarladım ve sapmaların çoğunu otomatik olarak iyileştirmek için PHP kodlama standartları düzelticisini kullanıyorum.
PHPStorm’da, ayarların “Kod Stili” bölümüne gidebilirsiniz. PHP ayarlarında sağda “Set” adlı bir seçenek vardır. PSR-2 ve WordPress’i seçenek olarak göreceksiniz. Birini seçmenizi öneririm. Daha sonra kodun otomatik oluşumu standartla eşleşecek ve temizleme kodu komutu da uygun olacaktır. ComSoer, FriendsOfphp/PHP-CS-Fixer-DEV gerektirir Bu harika küçük araç, kodunuzdaki sorunların çoğunu iyileştirir. Değilse, sorunu sizin için düzeltmeyi kolaylaştıracağını düşündüğüm bir şekilde açıklayacak. Besteci dosyasına bir komut dosyası daha ekleyelim, bu tabağeler için: {{
“senaryo”: {

“Sniffs”: “PHPCS -Standart = PSR2 SRC/ && PHPCS -Standart = PSR2 TEST/”,
“Düzeltmeler”: “PHP-CS-Fixer Onarımı SRC/ && PHP-CS-Fixer testi geliştirir/”
}
} Her görev için tüm kodları bir komut dosyasına koyduğumu unutmayın. Daha sonra, diğerini doğru sırayla aramak için bir komut dosyası ekleyeceğiz. Linter Sniffer uzun vadeli bir bakım sorunu olması muhtemel bir kod ararken, Linter hata arıyor. Her ikisinin de kodunuzu çalıştırmadığını belirtmek önemlidir. Hepsi yalnızca kodunuzun bulunduğu metin dosyasını analiz eder. Linter testin yerini almadı. Ama problem çözücülerimden birini çalıştırmayı ve test etmeyi seviyorum, böylece kötü bir şeyi kaçırırsam veya bir sorun çözme hatalarına neden olursa, testi çalıştırmadan işaretlenecek, ki bu yine de başarısız olacak.
Orada birkaç Linter PHP var. Paralel tiftiği severim çünkü birçok dosyayı aynı anda, sonra tek tek işlemek daha hızlıdır. İsim faydaları açıklar. İyi gösteri. Yükselelim: Bestecinin Jakub-onerka/PHP-paralel-ımparası Linter için komut “paralel-lent “, bu yüzden SRC ve Test için Lints komutu için besteci komut dosyasını güncelleyelim: {“skrip”: { {
“Sniffs”: “PHPCS -Standart = PSR2 SRC/ && PHPCS -Standart = PSR2 TEST/”,
“Düzeltmeler”: “PHP-CS-Fixer Onarımı SRC/ && PHP-CS-Fixer testi geliştirir/”,
“Lints”: “Paralel-açık ./src-blame — satıcıyı hariç tut && paralel-ini.
}
} Şimdi her şeyi birlikte üç komut dosyası aldıktan sonra, her şeyi çalıştırabiliriz, ardından bir komutla bir phunit testi yapabiliriz. Testten önce ip ve iyileştirmeyi çalıştırmak önemlidir. Bu şekilde otomatik onarımları da test ediyoruz. Bu sürecin hatalara neden olacağı oldukça şüphelidir, ancak bir şeyi doğru sırada çalıştırarak bundan kaçınmak kolaydır.
Daha da önemlisi, kod kötü kokuyorsa, kod test edilmeye hazır değildir. Yani, siparişim, bir şey çalıştırmayı seviyorum, anlatı olarak kod stilini geliştirmek, net bir hata için tiftik kodunu kontrol etmek, kalan kod kodunu kontrol etmek ve yalnızca kod doğru bir şekilde düzenlendikten sonra gerçekten çalışan bir kod yoktur Lintler sırasında ve geliştirilmiş – kodu test etmek. Bu, “Test” adlı yeni bir komut dosyası ile senaryo son kısmıdır. Bu komut dosyası yalnızca diğer komut dosyalarını çağırır, ancak doğru sırayla. {
“senaryo”: {
“Testler”: “Besteci Geliştirilmiş && Besteci Sneshing && Besteci Lints && phppunit-coverage-clover kapsama/clover.xml”,
“Sniffs”: “PHPCS -Standart = PSR2 SRC/ && PHPCS -Standart = PSR2 TEST/”,
“Düzeltmeler”: “PHP-CS-Fixer Onarımı SRC/ && PHP-CS-Fixer testi geliştirir/”,
“Lints”: “Paralel-açık ./src-blame — satıcıyı hariç tut && paralel-ini.
}
} Bu modülerliği seviyorum, çünkü bu her işlemi ayrı ayrı çalıştırabileceğim anlamına gelir, ancak çoğu zaman sadece “besteci testi” komutunu kullanıyorum.

admin

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir