Standar Pengkodean: Sesuatu untuk Dicium

Diterbitkan: 2021-07-19

Beberapa pertanyaan telah ada selama pengembangan perangkat lunak. Haruskah saya membuat indentasi dengan tab atau spasi? Apakah standar pengkodean benar-benar penting? Apakah saya benar-benar harus membuang waktu mengikuti beberapa aturan sewenang-wenang?

Masing-masing, jawaban atas pertanyaan-pertanyaan ini adalah: tab (jelas), ya (kurang jelas) dan tidak (semacam).

Pengendapan Kode PHP

Pentingnya standar telah dibahas oleh orang lain secara panjang lebar, jadi saya tidak akan membahasnya secara rinci di sini, tetapi intinya adalah ini: konsistensi internal diinginkan dalam proyek tertentu karena meningkatkan keterbacaan, membatasi kejutan, dan dapat berkontribusi pada ketangguhan kode.

Anda tidak perlu “membuang waktu” untuk berpegang teguh pada standar karena ada cara untuk menerapkan standar tersebut secara otomatis!

Apa yang akan saya bahas di sini adalah cara dengan cepat dan mudah menyiapkan alat mandiri PHP Codesniffer (PHPCS) untuk proyek WordPress. Ini akan memungkinkan Anda untuk:

  • Buat laporan tentang kepatuhan standar dalam kode Anda
  • Secara otomatis menyelesaikan berbagai masalah kepatuhan

Kami akan menerapkan standar WordPress dalam contoh berikut.

Menginstal

Prasyarat:

  • Akses terminal (pengguna Windows mungkin berhasil dengan Bash untuk Windows tetapi ini belum diuji)
  • Manajer paket komposer

Meskipun memungkinkan untuk menginstal PHPCS sendiri, itu tidak mendukung WordPress secara default. Untuk itu, kita akan menginstal WordPress Coding Standards (WPCS) yang bernama cepat .

Pertama, navigasikan ke mana pun Anda ingin menginstal WPCS untuk penggunaan global.

 $ > cd /path/ke/di mana pun

Instal paket dengan composer.

 $ > composer create-project wp-coding-standards/wpcs --no-dev

Pada titik ini, kita bisa menyelam dan mulai menggunakan WPCS, tetapi ada beberapa flag yang harus diatur setiap kali kita menjalankan perintah. Mari kita atur beberapa alias untuk kenyamanan.

Buka .profile dari direktori home Anda di editor favorit Anda (atau buat jika tidak ada) dan tambahkan yang berikut:

 # Standar Pengkodean WP
ekspor PATH=$PATH:"/path/ke/di mana pun/wpcs/vendor/bin"
alias wpcs='phpcs --standard=WordPress --extensions=php
alias wpcbf='phpcbf --standard=WordPress --extensions=php

Kami telah menambahkan dua alias di sini – satu untuk phpcs (yang menemukan dan menampilkan kegagalan kepatuhan) dan satu untuk phpcbf (yang secara otomatis memperbaiki berbagai masalah yang ditemukan oleh phpcs). Opsi tambahan melakukan hal berikut:

–standard=WordPress – menerapkan standar WordPress (ditetapkan dalam WPCS)

–extensions=php – hanya menargetkan file PHP (PHPCS menargetkan PHP, CSS, dan JS secara default)

Restart Terminal (atau source .profile ) dan WPCS siap untuk mengendus kode Anda!

Mengendus

Untuk menghasilkan laporan sniff pada file, jalankan yang berikut ini:

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

Ini akan menampilkan laporan di terminal. Atau, Anda dapat menampilkan ini ke file:

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

Laporan Sniff

Output sniff WPCS Anda akan menjadi seperti ini:

Laporan Codesniffer PHP

Ada cukup banyak informasi yang dikemas di sini, tetapi ditata dengan cukup rapi. Mari kita tinjau apa yang kita miliki:

  • File yang ditargetkan
  • Ringkasan berapa banyak kesalahan/peringatan yang ditemukan, dan jumlah saluran yang terpengaruh
  • Daftar masalah yang ditemukan, dengan tingkat keparahan dan deskripsi
  • Indikasi berapa banyak masalah yang dapat diselesaikan phpcbf secara otomatis (pada dasarnya semua masalah dengan [x])

Seperti yang diharapkan, PHPCS tidak dapat menjelaskan semuanya. Itu tidak akan membuat asumsi tentang pilihan tanda baca dalam komentar dan jenis pemformatan kode tertentu, tetapi dapat menangani berbagai masalah untuk Anda.

Bonus yang bagus adalah bahwa aturan WordPress memungkinkan PHPCS untuk mendeteksi masalah khusus WordPress, termasuk potensi penyalahgunaan fungsi.

Pemasangan

Menyelesaikan masalah secara otomatis sangat mudah:

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

Ringkasan singkat dikeluarkan:

Keluaran Pemecah Kode PHP

Kesalahan yang tersisa perlu diperbaiki secara manual, tetapi Anda biasanya akan menemukan banyak masalah yang telah ditangani.

Aturan Kustom

Anda mungkin juga ingin menyesuaikan aturan, mengecualikan direktori tertentu dalam proyek Anda, dan sebagainya. Dokumen aturan beranotasi PHPCS memberikan contoh semua perubahan yang dapat Anda buat, tetapi secara umum Anda hanya:

  1. Buat file kumpulan aturan
  2. Referensikan dalam perintah PHPCS

Berikut adalah contoh file aturan:

 <?xml versi="1.0"?>
<ruleset name="Standar Pengkodean WordPress">
    <description>Standar WordPress yang disesuaikan.</description>
    <rule ref="WordPress">
        <kecualikan nama="Generic.Formatting.MultipleStatementAlignment.NotSameWarning"/>
    </aturan>
    <exclude-pattern>*/bin/*</exclude-pattern>
    <exclude-pattern>*/node_modules/*</exclude-pattern>
    <exclude-pattern>*/tests/*</exclude-pattern>
</ruleset>

Dalam contoh kami telah melakukan hal berikut:

  • Merujuk aturan WordPress (dari WPCS)
  • Mengecualikan aturan
  • Mengecualikan beberapa direktori

File aturan dapat ditempatkan di direktori apa pun yang Anda panggil WPCS dari (proyek, tema, atau root plugin biasanya masuk akal) dan direferensikan melalui flag. Perbarui flag –standard di .profile Anda, seperti:

 # Standar Pengkodean WP
ekspor PATH=$PATH:"/path/ke/di mana pun/wpcs/vendor/bin"
alias wpcs='phpcs --standard=codesniffer.ruleset.xml --extensions=php
alias wpcbf='phpcbf --standard=codesniffer.ruleset.xml --extensions=php

Untuk memeriksa aturan mana yang ditandai saat Anda menjalankan WPCS, jalankan saja dengan flag -s seperti ini:

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

Apa selanjutnya?

Panduan di atas akan memberdayakan Anda untuk melakukan pemeriksaan kepatuhan standar ad-hoc di proyek WordPress Anda, tetapi jika Anda ingin mengintegrasikannya ke dalam siklus pengembangan standar Anda, maka langkah logis berikutnya adalah otomatisasi.

Pertimbangkan untuk mengintegrasikan PHPCS ke dalam task runner seperti gulp atau grunt (modul PHP tersedia untuk keduanya), atau mengintegrasikannya ke dalam pipeline build CI/CD Anda.

Untuk bantuan dengan pengembangan dan desain web, hubungi kami hari ini.


Jika Anda membutuhkan bantuan dengan Anda jangan ragu untuk menghubungi kami.