Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menggunakan skrip cangkuk pra-komit untuk menyemak dan membetulkan masalah secara automatik yang tidak mematuhi spesifikasi kod PHP terkini sebelum penyerahan kod?

Bagaimana untuk menggunakan skrip cangkuk pra-komit untuk menyemak dan membetulkan masalah secara automatik yang tidak mematuhi spesifikasi kod PHP terkini sebelum penyerahan kod?

WBOY
WBOYasal
2023-09-05 10:57:40954semak imbas

Bagaimana untuk menggunakan skrip cangkuk pra-komit untuk menyemak dan membetulkan masalah secara automatik yang tidak mematuhi spesifikasi kod PHP terkini sebelum penyerahan kod?

Bagaimana cara menggunakan skrip cangkuk pra-komit untuk menyemak dan membetulkan masalah secara automatik yang tidak mematuhi spesifikasi kod PHP terkini sebelum penyerahan kod?

Dalam proses pembangunan perisian, kualiti kod adalah aspek yang sangat penting. Spesifikasi kod yang baik boleh menjadikan kod mudah dibaca, difahami dan diselenggara. Contohnya, untuk kod PHP, mengikut spesifikasi PSR (Pengesyoran Standard PHP) boleh meningkatkan kebolehbacaan dan kebolehselenggaraan kod.

Untuk memastikan kualiti kod sebelum ahli pasukan menyerahkan kod, anda boleh menggunakan skrip cangkuk prakomit dalam cangkuk Git untuk menyemak dan membetulkan masalah secara automatik yang tidak mematuhi spesifikasi kod PHP terkini. Ini membolehkan ahli pasukan mengenal pasti dan menyelesaikan isu spesifikasi kod dengan serta-merta sebelum melakukan kod, meningkatkan kualiti kod keseluruhan.

Skrip cangkuk prakomit boleh menjadi mana-mana fail skrip boleh laku yang boleh dijalankan sebelum setiap komit. Dalam contoh ini, kami akan menggunakan alat PHP_CodeSniffer untuk menyemak spesifikasi kod dan PHP-CS-Fixer untuk menyelesaikan masalah secara automatik.

Berikut ialah contoh skrip cangkuk pra-komit yang menggunakan PHP_CodeSniffer dan PHP-CS-Fixer:

#!/bin/sh

# Run PHP_CodeSniffer
./vendor/bin/phpcs --standard=PSR2 --colors --ignore=vendor/,tests/ --report=emacs

# Run PHP-CS-Fixer
./vendor/bin/php-cs-fixer fix --rules=@PSR2 --using-cache=no --verbose --dry-run

# Check the exit code of the previous commands
if [ $? -ne 0 ]; then
  echo "Code style check failed. Please fix the issues before committing."
  exit 1
fi

Skrip di atas mula-mula menggunakan PHP_CodeSniffer untuk menyemak spesifikasi kod, --standard=PSR2 bermaksud Gunakan spesifikasi PSR2 untuk menyemak dan gunakan parameter --ignore=vendor/,tests/ untuk mengabaikan direktori vendor dan direktori ujian. --colors bermaksud menggunakan output berwarna dan --report=emacs bermaksud menggunakan format laporan mudah dibaca Emacs. --standard=PSR2 表示使用 PSR2 规范进行检查,并使用 --ignore=vendor/,tests/ 参数来忽略 vendor 目录和 tests 目录。--colors 表示使用彩色输出,--report=emacs 表示使用 Emacs 易于阅读的报告格式。

接下来,脚本使用 PHP-CS-Fixer 来自动修复代码规范问题。--rules=@PSR2 表示使用 PSR2 规范进行修复,--using-cache=no 表示不使用缓存,--verbose --dry-run 表示输出详细的修复信息但不实际修改文件。

最后,脚本检查上述两个命令的退出代码。如果有任何问题,脚本会输出错误信息并退出。

要使用这个预提交钩子脚本,您需要将其保存为 .git/hooks/pre-commit 文件,并使其可执行。您还需要安装 PHP_CodeSniffer 和 PHP-CS-Fixer。在上面的脚本中,我们假设这两个工具已经通过 Composer 安装在 vendor/bin

Seterusnya, skrip menggunakan PHP-CS-Fixer untuk membetulkan isu spesifikasi kod secara automatik. --rules=@PSR2 bermaksud menggunakan spesifikasi PSR2 untuk pembaikan, --using-cache=no bermaksud tidak menggunakan cache, --verbose --dry -run bermaksud mengeluarkan maklumat pembaikan terperinci tetapi sebenarnya tidak mengubah suai fail.

Akhir sekali, skrip menyemak kod keluar dua arahan di atas. Jika terdapat sebarang masalah, skrip akan mencetak mesej ralat dan keluar.

Untuk menggunakan skrip cangkuk prakomit ini, anda perlu menyimpannya sebagai fail .git/hooks/pre-commit dan menjadikannya boleh laku. Anda juga perlu memasang PHP_CodeSniffer dan PHP-CS-Fixer. Dalam skrip di atas, kami menganggap bahawa kedua-dua alatan ini telah dipasang dalam direktori vendor/bin melalui Composer. 🎜🎜Apabila anda menyerahkan kod, skrip cangkuk prakomit ini akan berjalan secara automatik dan menyemak spesifikasi kod. Jika terdapat sebarang isu ketidakpatuhan, skrip akan mencetak mesej ralat yang sepadan pada baris arahan dan menghalang kod daripada diserahkan. Anda perlu menyelesaikan isu ini sebelum anda berjaya menyerahkan kod anda. 🎜🎜Dengan menggunakan skrip cangkuk prakomit untuk menyemak dan membetulkan isu spesifikasi kod secara automatik, anda boleh memastikan ahli pasukan mengikuti spesifikasi kod PHP terkini sebelum melakukan kod, dengan itu meningkatkan kualiti kod keseluruhan. Ini amat penting untuk projek dan pasukan besar, kerana ia boleh mengurangkan beban kerja semakan kod, meningkatkan kecekapan pembangunan dan mengurangkan risiko potensi pepijat. Menggunakan contoh ini, anda boleh menyesuaikan skrip cangkuk prakomit anda mengikut keperluan pasukan anda dan konvensyen pengekodan khusus. 🎜

Atas ialah kandungan terperinci Bagaimana untuk menggunakan skrip cangkuk pra-komit untuk menyemak dan membetulkan masalah secara automatik yang tidak mematuhi spesifikasi kod PHP terkini sebelum penyerahan kod?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn