Standar Pengkodean: Sesuatu untuk Dicium
Diterbitkan: 2021-07-19Beberapa 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).

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.phpIni 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:


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:

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:
- Buat file kumpulan aturan
- 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.
